Skip to content

Instantly share code, notes, and snippets.

@vmrfriz
Last active March 18, 2024 06:54
Show Gist options
  • Save vmrfriz/2a6912f86501e27418c39ab3d2b4188d to your computer and use it in GitHub Desktop.
Save vmrfriz/2a6912f86501e27418c39ab3d2b4188d to your computer and use it in GitHub Desktop.

Выкачивание продакшн базы в локальную

Скрипт выкачивает продакшн базу в текущую директорию в .sql-файл, очищает локальную базу (удаляет-создает), восстанавливает продакшн копию в локальную базу.

Использование

  1. Настроить ssh подключение в ~/.ssh/config к пользователю, у которого настроен .my.cnf с доступами к нужной базе;
  2. Настроить переменные ssh_name, remote_db, local_db в sync.sh;
  3. Дать права на исполнение chmod +x sync.sh
  4. Запустить ./sync.sh

Конфигурирование

Переменная Описание
ssh_name Host подключения из ~/.ssh/config
remote_db Название базы на удаленном сервере
local_db Название локальной базы
backup_name Название файла, куда будет помещена резервная копия продакшн базы
#!/bin/bash
ssh_name=example.com # from ~/.ssh/config
remote_db=production_db_name
local_db=development_db_name
backup_name="dump_$(date +'%Y-%m-%d').sql"
echo "Скачивание бэкапа удаленной базы"
ssh $ssh_name "mysqldump $remote_db" > $backup_name
echo "Скачан бэкап $backup_name ($(du -h $backup_name | cut -f 1))"
echo "Пересоздание локальной базы $local_db"
mariadb -Bse "drop database if exists $local_db; create database $local_db"
mariadb $local_db < $backup_name
echo "Локальная база восстановлена"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment