25 Мар


2018

Flask. SQLAlchemy миграции.

Обычно не поднимал на фласке ничего тяжелого, соответственно как-то обхатился без миграций, изменяния в структуре табилцы были крайне редки и проводились с помощью альтеров напрямую через sql. Когда-то давно пытался подружить миграции через алембик, но, до конца не разобравшись, подумал что каждую миграцию необходимо заполнять вручную, на тот момент мне казалось что из-за этого теряется весь смысл (ну и правда, а нафига? если можно тоже самое сделать через sql запрос?) Собственно подключить миграции к алхимии оказалось достаточно тривиально.

Для начала ставим необходимые пакеты: flask_script и flask_migrate. Далее создаем manage.py файл и добавляем в него новую команду,выглядить файл должен следующим образом:

from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager
from core import app
from core.models import db, User


manager = Manager(app)


if __name__ == '__main__':

        application = app
        migrate = Migrate(app, db)

        manager.add_command('db', MigrateCommand)
        manager.run()
   

Для инициализации миграции необходимо:

python manage.py db init
python manage.py db migrate
python manage.py db upgrade
Flask
SQLAlchemy