Skip to main content

Команды

Создание первой (пустой) миграции

alembic revision -m "Empty Init"

Обновление базы данных до текущей версии

alembic upgrade head

Хэш текущей миграции

alembic current

История миграций

alembic history

Возврат к предыдущему состоянию

alembic downgrade migration_id

Пропуск состояния

alembic stamp migration_id

 

 

Автогенерация миграции

alembic revision --autogenerate -m "Added Cookie model"

Поддерживаемые и неподдерживаемые действия при автоматической миграции

Тип элемента Поддерживаемые Неподдерживаемые
Таблицы Добавление и удаление Изменение имени
Столбец Добавление, удаление, изменение нулевого статуса на столбце Изменение имени
Индекс Основные изменения в индексах и явно обозначенных уникальных ограничениях, поддержка автоматической генерации индексов
и уникальных ограничений

Ограничения
Ограничения без явного имени
Ключи Переименование
Типы
Типы, которые явно не поддерживаются базой данных

Ручное создание миграций

На примере изменения имени таблицы

  • Изменить имя.
  • Выполнить генерацию миграции
alembic revision -m "Renaming table"
  • В созданном файле изменить upgrade/downgrade
def upgrade():
    op.rename_table('old_name', 'new_name')
def downgrade():
    op.rename_table('new_name', 'old_name')
  • Выполнить миграцию
alembic upgrade head

Команды alembic

add_columnДобавить столбец
alter_columnИзменить тип столбца, имя или значение по-умолчанию
create_check_constraintДобавить ограничение
create_foreign_keyДобавить внешний ключ
create_indexСоздать индекс
create_primary_keyСоздать основной ключ
create_tableСоздать таблицу
create_unique_constraintСоздать ограничение уникальности
drop_columnУдалить столбец
drop_constraintУдалить ограничение
drop_indexУдалить индекс
drop_tableУдалить таблицу
executeВыполнить сырую SQL команду
rename_tableПереименовать таблицу