Команда flask db revision
Команда flask db revision применяется для создания нового файла миграции в директории migrations/versions. Она генерирует Python-скрипт, содержащий функции upgrade и downgrade для применения и отката изменений схемы базы данных. Команда работает через расширение Flask-Migrate, которое оборачивает Alembic. Первым необязательным параметром передаётся сообщение миграции с помощью флага -m. Если изменения моделей не обнаружены, команда создаст пустую миграцию.
Синтаксис
flask db revision [options]
Пример
Давайте создадим простую модель User и инициализируем миграции:
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 revision -m "create user table"
Результат выполнения команды:
Creating directory /project/migrations ... done
Creating directory /project/migrations/versions ... done
Generating /project/migrations/versions/a1b2c3d4e5f6_create_user_table.py ... done
Пример
Давайте создадим пустую миграцию для ручного добавления изменений:
flask db revision
Результат выполнения команды:
Generating /project/migrations/versions/b2c3d4e5f6a1_.py ... done
Содержимое созданного файла миграции:
"""empty message
Revision ID: b2c3d4e5f6a1
Revises: a1b2c3d4e5f6
Create Date: 2024-01-01 12:00:00.000000
"""
from alembic import op
import sqlalchemy as sa
revision = 'b2c3d4e5f6a1'
down_revision = 'a1b2c3d4e5f6'
branch_labels = None
depends_on = None
def upgrade():
pass
def downgrade():
pass
Смотрите также
-
команду
flask db migrate,
которая автоматически создаёт миграцию на основе изменений моделей -
команду
flask db upgrade,
которая применяет миграции к базе данных -
команду
flask db downgrade,
которая откатывает миграции на предыдущую версию -
команду
flask db init,
которая инициализирует директорию для миграций