РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
617 of 643 menu

Команда flask db downgrade

Команда flask db downgrade применяется для отката миграций базы данных. Она берёт текущую версию схемы и возвращает её к предыдущей миграции, выполняя обратные операции из файла миграции. Команда полезна, когда нужно отменить последние изменения структуры таблиц. Первым необязательным параметром передаётся идентификатор ревизии, к которой нужно откатиться.

Синтаксис

flask db downgrade [revision]

Без параметра команда откатывает базу на одну миграцию назад. Если указать revision, откат произойдёт до этой ревизии.

Пример

Пусть в проекте уже настроен Flask-Migrate и создана одна миграция. Сначала применим её к базе данных:

flask db upgrade

Результат выполнения команды:

INFO [alembic.runtime.migration] Running upgrade -> 1a2b3c4d5e6f, create user table

Теперь откатим последнюю миграцию командой downgrade:

flask db downgrade

Результат выполнения команды:

INFO [alembic.runtime.migration] Running downgrade 1a2b3c4d5e6f -> , create user table

Таблица user будет удалена, а база вернётся к состоянию до применения миграции.

Пример

Пусть в проекте созданы две миграции и обе применены. Откатимся сразу к первой, указав её идентификатор:

flask db downgrade 1a2b3c4d5e6f

Результат выполнения команды:

INFO [alembic.runtime.migration] Running downgrade 2b3c4d5e6f7a -> 1a2b3c4d5e6f, add email column

Вторая миграция будет отменена, а схема останется на версии первой миграции.

Пример

Пусть приложение Flask определено в файле app.py и использует Flask-Migrate:

from flask import Flask from flask_sqlalchemy import SQLAlchemy from flask_migrate import Migrate app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db' db = SQLAlchemy(app) migrate = Migrate(app, db) class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50))

Инициализируем миграции и создадим первую ревизию:

flask db init flask db migrate -m "create user table"

Применим миграцию, а затем откатим её командой downgrade:

flask db upgrade flask db downgrade

Результат выполнения команды:

INFO [alembic.runtime.migration] Running downgrade 3c4d5e6f7a8b -> , create user table

Смотрите также

  • команду flask db upgrade,
    которая применяет миграции к базе данных
  • команду flask db migrate,
    которая создаёт новую миграцию
  • команду flask db revision,
    которая создаёт пустую ревизию вручную
  • команду flask db history,
    которая показывает список всех миграций
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить