pgmigrate2 є інструментом Python, що дозволяє розвиватися базу даних разом з додатком.
Основна одиниця PGmigrate є однією фрагмент SQL називається патч.
Приклад патч бази даних
І NBSP; Кішка 000049_Added_index_on_CategorySlug.sql
--- ID: 89ccfca6-6851-11e1-99d8-a088b4e3b168
--- Автор: Serg
--- Пам'ятка: Додана індекс CategorySlug
--- Дата: 2012-03-07 14:32
Створення унікальних INDEX catalog_category_slug_shop_id_slug
І NBSP; ON catalog_category_slug
І NBSP; ВИКОРИСТАННЯ BTREE
І NBSP; (shop_id, кулі);
Як ви можете бачити патча правильний файл SQL, який навіть може бути виконана безпосередньо. Вона також має приємний, легкий для читання ім'я файлу, а деякі метадані.
Швидкий старт
Ініціалізація бази даних
І NBSP; pgmigrate2 ініціалізації PostgreSQL: // користувач @ Password / 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: // користувач @ Password / TESTDB
Потрібно застосовувати: створення, таблиця х
Перевірте бере на себе всі патчі в патч репо, і роздрукувати список патчів, які повинні бути застосовані до testd.
Застосуйте патчі
І NBSP; pgmigrate2 мігрувати patchrepo / PostgreSQL: // користувач @ Password / TESTDB
Потрібно застосовувати 1 патчі:
Застосування «створення таблиці х '
Міграція приймає всі патчі з патча репо, і послідовно застосовує ті з них ,, чиї ID немає в __applied_patches__ таблиць TESTDB.
Вкладення
Ось приклад того, як ми використовуємо PGmigrate в нашому проекті:
### Команд перенесення бази даних
@ Finaloption.command (config_opts)
Def dbmigrate (конфігурації):
І NBSP; від імпорту shopium.core.config read_config
І NBSP; Config = read_config (конфігурації)
І NBSP; від імпорту pgmigrate2 API
І NBSP; повернення api.migrate («міграція», config.db_uri)
@ Finaloption.command (config_opts)
Def dbnewpatch (конфігурації):
І NBSP; від імпорту shopium.core.config read_config
І NBSP; Config = read_config (конфігурації)
І NBSP; від імпорту pgmigrate2 API
І NBSP; імпорт подпроцесс
і NBSP; PATH = api.newpatch («міграція»)
І NBSP; якщо шлях:
І NBSP; subprocess.check_call ('Hg додати% S'% шлях, оболонки = True) # додайте щойно створений патч для Mercurial
@ Finaloption.command (config_opts)
Def dbcheckstatus (конфігурації):
І NBSP; від імпорту shopium.core.config read_config
І NBSP; Config = read_config (конфігурації)
І NBSP; від імпорту pgmigrate2 API
І NBSP; api.check_status («міграція», config.db_uri)
Вимоги
- Python
Коментар не знайдено