pgmigrate2 является инструментом Python, который поможет вам развиваться базу данных вместе с приложением.
Основной единицей PGmigrate является одной фрагмент SQL называется патч.
Образец базы данных Патч
& NBSP; Кошка 000049_Added_index_on_CategorySlug.sql
--- №: 89ccfca6-6851-11e1-99d8-a088b4e3b168
--- Автор: Serg
--- Памятка: Добавлено индекс CategorySlug
--- Дата: 2012-03-07 14:32
СОЗДАТЬ УНИКАЛЬНЫЙ INDEX catalog_category_slug_shop_id_slug
& NBSP; ПО catalog_category_slug
& NBSP; ИСПОЛЬЗОВАНИЕ BTree
& NBSP; (shop_id, пули);
Как вы можете видеть патч является допустимым файлом SQL, который даже может быть выполнена непосредственно. Она также имеет хороший, удобочитаемое имя файла, и некоторые метаданные.
Быстрый старт
Инициализация базы данных
& NBSP; pgmigrate2 инициализации PostgreSQL: // пользователь @ пароль / TESTDB
Это создаст таблицу __applied_patches__ в TESTDB. Эта таблица используется для отслеживания патчей уже применяются.
Создать патч репо, и первый патч
& NBSP; MkDir patchrepo
& NBSP; pgmigrate2 newpatch patchrepo
... Редактировать патч в текстовом редакторе ...
Написал 'patchrepo / 000001_creating_table_x.sql'
Это создаст пустой патч и открыть его в текстовом редакторе. Введите патч SQL, и дополнительный меморандум, описывающий то, что функция этого патча.
PGmigrate создаст файл как patchrepo / 000001_creating_table_x.sql где 000001 представляет собой серийный номер патча, и creating_table_x является slugified патч памятки. PGmigrate будет заполнить остальные патч метаданных сама по себе.
Проверьте, что нужно быть применены к
& NBSP; pgmigrate2 проверка patchrepo / PostgreSQL: // пользователь @ пароль / TESTDB
Необходимость в применении: создание таблицы х
Проверить принимает все патчи в патч репо, и распечатать список патчей, которые должны быть применены к testd.
Примените патчи
& NBSP; pgmigrate2 мигрируют patchrepo / PostgreSQL: // пользователь @ пароль / TESTDB
Нужно применять 1 патчи:
Применяя «создание таблицы х '
Миграция принимает все патчи из патча репо, и последовательно применяет те из них, чьи ID, не присутствуют в __applied_patches__ таблиц TESTDB.
Встраивание
Вот пример того, как мы используем PGmigrate в нашем проекте:
### Команд миграции БД
@ finaloption.command (config_opts)
Def dbmigrate (конфигурации):
& NBSP; от импорта shopium.core.config read_config
& NBSP; конфигурации = read_config (конфигурации)
& NBSP; от импорта pgmigrate2 API
& NBSP; возвращение api.migrate ('' миграции, config.db_uri)
@ finaloption.command (config_opts)
Def dbnewpatch (конфигурации):
& NBSP; от импорта shopium.core.config read_config
& NBSP; конфигурации = read_config (конфигурации)
& NBSP; от импорта pgmigrate2 API
& NBSP; импорт подпроцесс
и NBSP; путь = api.newpatch ('') миграции
& NBSP; если путь:
& NBSP; subprocess.check_call ("Hg добавить% S '% путь, SHELL = True) # добавить только что создали, чтобы Mercurial патч
@ finaloption.command (config_opts)
Def dbcheckstatus (конфигурации):
& NBSP; от импорта shopium.core.config read_config
& NBSP; конфигурации = read_config (конфигурации)
& NBSP; от импорта pgmigrate2 API
& NBSP; api.check_status ('' миграции, config.db_uri)
Требования
- Python
Комментарии не найдены