Yoyo-миграции является миграция схемы базы данных утилита, используя обычный SQL и DB-API.
Что делать йо-йо-миграции?
Как приложений баз данных развиваться, изменения в схеме базы данных часто требуется. Они, как правило, можно записать в виде SQL скриптов разовых содержащих CREATE / ALTER таблицы заявления (хотя любой SQL или питон скрипт можно использовать с йо-йо-миграций).
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), первичный ключ (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), первичный ключ (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; "ЦЕННОСТИ (% 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:
- Добавлена поддержка окна (благодаря Петру Shinners)
Что нового в версии 4.1.5:
- Настройка обработчиков ведения журнала, так что ключ -v причины Выход, чтобы перейти к консоли (благодаря Эндрю Nelis).
- `` -v`` ключ командной строки больше не принимает аргумент, но может быть указан несколько раз, а (т.е. использование `` -vvv`` вместо `` -v3``). `` --verbosity`` сохраняет старое поведение.
Что нового в версии 4.1.3:
- имя миграция стол Изменено значение по умолчанию обратно на "_yoyo_migration"
Требования
- Python
Комментарии не найдены