Настройка нового стенда требуется для «бесперебойного» параллельного тестирования. Процесс разворачивания следующий:
- в базе данных создаем новую бд, например cic-test-db
- подключаемся по SSH и настраиваем сервер
sudo su - postgres touch [name].sh # где name - любое имя файла
Ниже текст файла
#!/bin/bash db_name=dev-db echo "Архивация БД $db_name" dir_folder=/var/lib/postgresql/$db_name mkdir -p $dir_folder cd $dir_folder pg_dump test-db > $dir_folder/$db_name-day_$(date +\%Y\%m\%d).bak psql -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE pid <> pg_backend_pid() AND datname = 'test-db';" dropdb test-db psql -c 'create database "test-db";' psql -c 'ALTER DATABASE "test-db" OWNER TO mobnius;' psql -c 'ALTER DATABASE "test-db" SET timezone TO "Europe/Moscow";' psql -U postgres test-db < $dir_folder/$db_name-day_$(date +\%Y\%m\%d).bak ls -1tr | head -n -5 | xargs -d '\n' rm -f -- echo "Завершено"
Примечание: наименование тестовой базы данных нужно указывать везде отдельно. По требованию test-db можно переименовать
- устанавливаем права для запуска скрипта
chmod 777 [name].sh
- запускаем скрипт
[name].sh
Примечание: можно настроить crontab для автоматического создания backup
0 0 * * * /var/lib/postgresql/[name].sh