Использование flask-миграции с flask-appbuilderPython

Программы на Python
Anonymous
Использование flask-миграции с flask-appbuilder

Сообщение Anonymous »

У меня есть проект flask-appbuilder (FAB), и я хотел бы использовать flask-migrate для управления миграцией БД. Однако FAB заранее создает базу данных самостоятельно, поэтому flask-migrate не может вычислять миграции.
Однако я знаю об этом примере и об этой проблеме в репозитории FAB. Мне не удалось использовать их для решения проблемы.
Это минимальное приложение, позволяющее показать проблему.

Код: Выделить всё

# app.py
from flask import Flask
from flask_appbuilder import AppBuilder, SQLA
from flask_migrate import Migrate
import os
from flask_appbuilder import Model
from sqlalchemy import Column, Integer

class Config():
basedir = os.path.abspath(os.path.dirname(__file__))
SQLALCHEMY_DATABASE_URI = \
'sqlite:///' + os.path.join(basedir, 'app.db')
SQLALCHEMY_TRACK_MODIFICATIONS = False

db = SQLA()
migrate = Migrate()
appbuilder = AppBuilder()

def create_app(config_class=Config):
app = Flask(__name__)
app.config.from_object(config_class)
db.init_app(app)
migrate.init_app(app, db)

with app.app_context():
appbuilder.init_app(app, db.session)
appbuilder.post_init()

return app

class MyTable(Model):
__tablename__ = "my_table"

id = Column(Integer, primary_key=True)
mycol = Column(Integer)

if __name__ == "__main__":
app = create_app()
app.run()
Его можно протестировать в виртуальной среде со следующими требованиями.txt:

Код: Выделить всё

flask-appbuilder==3.1.0
SQLAlchemy==1.3.24
flask-migrate
Посредством выпуска

Код: Выделить всё

export FLASK_APP=app.py
flask db init
flask db migrate
вывод читает INFO [alembic.env] Никаких изменений в схеме не обнаружено, поэтому миграция невозможна. Однако база данных была создана.
Примечание: кросспостинг из моей проблемы в репозитории FAB

Подробнее здесь: https://stackoverflow.com/questions/680 ... appbuilder

Вернуться в «Python»