Правила и инструменты для резервного копирования и отката БД при внесении изменений.
Это правило ОБЯЗАТЕЛЬНО к выполнению перед любым изменением структуры базы данных (миграции Alembic, удаление колонок, изменение типов данных) или массовым изменением бизнес-данных.
alembic upgrade, alembic downgrade или запуском скриптов миграции (например, migrate_to_postgres.py), необходимо создать резервную копию текущей БД..env.backups/ в корне проекта с временной меткой в названии.Для автоматического создания бэкапа используйте скрипт:
python .agents/skills/db-rollback/scripts/backup.py
Для SQLite:
cp db.sqlite3 backups/db.sqlite3.$(date +%Y%m%d_%H%M%S).bak
Для PostgreSQL:
pg_dump -h localhost -U pm_user -F c -f backups/production_db.$(date +%Y%m%d_%H%M%S).sql production_db
Если после изменений возникли критические ошибки:
Для SQLite:
cp backups/db.sqlite3.TIMESTAMP.bak db.sqlite3
Для PostgreSQL:
pg_restore -h localhost -U pm_user -d production_db backups/production_db.TIMESTAMP.sql