Версионность базы данных - Программное обеспечение для пропускной системы на основе технологии NFC

С ростом приложения существует проблема обновления схемы базы данных с сохранением внесенных данных. Если информация в базе данных не может быть легко восстановлена необходимо создать скрипты для экспорта и импорта данных. Однако, существует плагин SQLAlchemy-migrate, который позволяет облегчить этот процесс [17].

Для начала использования этого плагина необходимо добавить следующие строчки в начало конфигурационного файла config. py рис. 16:

конфигурация sqlalchemy-migrate

Рисунок 16. Конфигурация SQLAlchemy-migrate

SQLALCHEMY_DATABASE_URI - задает файл базы данных.

SQLALCHEMY_MIGRATE_REPO - задает директорию, где будут храниться файлы миграции.

Файл инициализации пакета приложения должен выглядеть следующим образом рис. 17:

__init__.py

Рисунок 17. __init__.py

Для создания базы данных используется следующий скрипт рис. 18:

db_create.py

Рисунок 18. db_create. py

После запуска данного скрипта создается пустая база данных изначально с поддержкой миграции. Поддержка миграции осуществляется созданием таблицы migrate_version, которая имеет следующий вид:

Таблица 7 Таблица migrate_version

Repository_id

Repository_path

Version

Database repository

C:...PassCardServerdb_repository

4

Также создается директория db_repository, где находятся файлы для поддержки версионности. Каталог имеет следующую структуру рис. 19:

структура db_repository

Рисунок 19. Структура db_repository

В папке versions находятся скрипты для миграции на определенную версию.

Для перехода на следующую версию БД используется следующий скрипт рис. 20:

db_migration.py

Рисунок 20. db_migration. py

Суть миграции заключается в том, что скрипт вычисляет разницу между версиями БД и записывает эту разницу в виде скрипта в директорию /db_repository/versions.

Апгрейд и даунгрейд базы данных производятся с помощью следующий скриптов рис. 21 и рис. 22:

db_upgrade.py

Рисунок 21. db_upgrade. py

db_downgrade.py

Рисунок 22. db_downgrade. py

Похожие статьи




Версионность базы данных - Программное обеспечение для пропускной системы на основе технологии NFC

Предыдущая | Следующая