Yoyo-міграцій міграції схеми бази даних утиліта, використовуючи звичайний SQL і DB-API.
Що робити йо-йо-міграції?
В якості додатків баз даних розвиватися, зміни в схемі бази даних часто потрібно. Вони, як правило можна записати у вигляді SQL скриптів одноразових містять CREATE / ALTER TABLE заяви (хоча будь SQL або Python скрипт може бути використаний з йо-йо-міграцій).
Yoyo-міграції надає інструмент командного рядка для читання каталогу таких сценаріїв і застосовуючи їх до бази даних в міру необхідності.
підтримка бази даних
Бази даних PostgreSQL, MySQL і SQLite підтримуються.
Використання
Yoyo-міграції, як правило, викликається в якості сценарію командного рядка.
Приклади:
Читати всі міграції з міграцій каталогів і застосовувати їх в базу даних PostgreSQL:
йо-йо мігрують застосовувати ./migrations/ Postgres: // користувач: пароль @ локальний / бази даних
Міграції відкату раніше застосовувалася до бази даних MySQL:
йо-йо мігрують відкат ./migrations/ MySQL: // користувач: пароль @ локальний / бази даних
Повторно (тобто відкат потім застосувати знову) міграції в SQLite бази даних в місці /home/sheila/important-data.db:
йо-йо мігрують повторного застосування ./migrations/ SQLite: ////home/sheila/important-data.db
За замовчуванням, YOYO-міграції запуску в інтерактивному режимі, що пропонує для кожного файлу міграції перед його застосуванням, що дозволяє легко вибрати, які міграції застосовувати і відкат.
Каталог міграції повинен містити ряд сценаріїв міграції. Кожен сценарій міграції файлів пітон (.py), що містить ряд кроків. Кожен крок повинен складатися міграції запит і (необов'язково) відкату запит. Наприклад:
#
# Фото: міграція / 0001.create-foo.py
#
крок (
І NBSP; "TABLE Foo (ID INT, бар VARCHAR (20), PRIMARY KEY (ID)) Створити",
І NBSP; "DROP TABLE Foo",
)
Файл кожного файлу (без розширення .py) використовується в якості ідентифікатора для кожного переходу. Міграції застосовуються в порядку імен файлів, так що це корисно називати файли, використовуючи дату (наприклад, «20090115-xyz.py ') або з іншим збільшується число.
йо-йо мігрують створює таблицю в цільову базу даних, _yoyo_migration, щоб відстежувати, які міграції були застосовані.
Кроки можуть також брати необов'язковий аргумент ignore_errors, які повинні бути одним з Застосувати, відкат, або все. Якщо в попередньому прикладі таблиці Foo, можливо, вже були створені іншими засобами, ми могли б додати ignore_errors = "застосувати" за крок, щоб дозволити міграції триватимуть незалежно:
#
# Файлу: 0001.create-foo.py
#
крок (
І NBSP; "TABLE Foo (ID INT, бар VARCHAR (20), PRIMARY KEY (ID)) Створити",
І NBSP; "DROP TABLE Foo",
І NBSP; ignore_errors = "застосувати",
)
Кроки можуть бути також пітона викликаються об'єкти, які мають підключення до бази даних, як їх єдиний аргумент. Наприклад:
#
# Файлу: 0002.update_keys.py
#
Def do_step (штат Коннектикут):
І NBSP; курсор = conn.cursor ()
І NBSP; cursor.execute (
І NBSP; "INSERT INTO SYSINFO"
І NBSP; "(OSName, ім'я хоста, випуск, версія, арки)"
І NBSP; "VALUES (% S,% S,% S,% S,% S% S)",
І NBSP; os.uname ()
І NBSP;)
крок (do_step)
Пароль безпеки
Ви зазвичай вказується ім'я користувача та пароль бази даних, як частина рядка з'єднання з базою даних в командному рядку. На багатокористувацької машині в, інші користувачі можуть переглядати свій пароль бази даних у списку процесів.
Прапор -p або --prompt-пароль викликає йо-йо мігрують для запиту пароля, ігноруючи будь-який пароль, зазначений у рядку з'єднання. Цей пароль НЕ буде доступний іншим користувачам через список процесів системи.
Рядок кешування Підключення
Під час першого запуску йо-йо мігрують на новому комплекті міграцій, вам буде запропоновано, якщо ви хочете кешувати рядок підключення до бази даних у файл під назвою .yoyo мігрують в каталозі міграцій.
Цей кеш є локальним в каталог міграції, так подальші працює на тому ж наборі міграції не потрібно рядок підключення до бази даних, який буде вказаний.
Це економить набравши, уникає ім'я користувача бази даних і пароль показ в технологічних пропозицій і зменшує ризик випадкового запуску йо-йо мігрують на тій базі даних (тобто повторно використовуєте більш ранню запис йо-йо мігрують у вашій історії команд, коли ви переїхали в інший каталог).
Якщо ви не хочете, щоб це файл кешу, які будуть використовуватися, додайте параметр --no-кеша ключів командного рядка
Що нового У цьому випуску :.
- Виправлена невміло 4.2.3 випуску
Що нового у версії 4.2.1:
- Виправлення для попередньої версії, яка опускається важливі файли.
Що нового у версії 4.1.6:
- Додана підтримка для Windows (завдяки Петру Shinners)
Що нового у версії 4.1.5:
- Налаштування обробників ведення журналу, так що ключ -v причини Вихід, щоб перейти до консолі (Дякуємо Андрію Nelis).
- `` -v`` ключ командного рядка більше не приймає аргумент, але може бути вказаний кілька разів замість (тобто використовувати `` -vvv`` замість `` -v3``). `` --verbosity`` Зберігає старе поведінку.
Що нового у версії 4.1.3:
- ім'я таблиць міграції Змінено значення за замовчуванням назад на "_yoyo_migration"
Вимоги
- Python
Коментар не знайдено