flask_migrate 可以 运行 与数据库初始化文件中的 sqlAlchemy create_engine 吗?
Can flask_migrate be run with sqlAlchemy create_engine in a database init file?
如果我有一个 init.py 文件,它看起来是这样的:
from sqlalchemy import create_engine
import os
from sqlalchemy.orm import sessionmaker, scoped_session
from testserver.database.models.Base import Base
from sqlalchemy.ext.declarative import declarative_base
from flask_migrate import Migrate
BASE_DIR = os.path.dirname(os.path.realpath(__file__))
def set_db_connection():
connection_string = 'sqlite:///' + os.path.join(BASE_DIR, 'testserver.db')
return connection_string
engine = create_engine(set_db_connection(), connect_args={'check_same_thread': False})
Session = sessionmaker(autocommit=False, autoflush=False, bind=engine)
# Set the custom base class
Base = declarative_base(cls=Base)
def init_app(app):
Base.metadata.create_all(engine)
Base.metadata.bind = engine
Session.configure(bind=engine)
app.session = scoped_session(Session)
# Export session for use in other classes
db_session = Session()
如果我要对现有模型进行更新。我可以使用 flask_migrate 包来成功 运行 迁移吗?如果是的话怎么办?
这里是 Flask-Migrate 的作者。 Flask-Migrate 需要 Flask-SQLAlchemy 或 Alchemical(我构建的一个仍然有点实验性的包,它使用 SQLAlchemy 1.4 中较新的查询功能)。
如果您使用纯 SQLAlchemy,则直接使用 Alembic。
如果我有一个 init.py 文件,它看起来是这样的:
from sqlalchemy import create_engine
import os
from sqlalchemy.orm import sessionmaker, scoped_session
from testserver.database.models.Base import Base
from sqlalchemy.ext.declarative import declarative_base
from flask_migrate import Migrate
BASE_DIR = os.path.dirname(os.path.realpath(__file__))
def set_db_connection():
connection_string = 'sqlite:///' + os.path.join(BASE_DIR, 'testserver.db')
return connection_string
engine = create_engine(set_db_connection(), connect_args={'check_same_thread': False})
Session = sessionmaker(autocommit=False, autoflush=False, bind=engine)
# Set the custom base class
Base = declarative_base(cls=Base)
def init_app(app):
Base.metadata.create_all(engine)
Base.metadata.bind = engine
Session.configure(bind=engine)
app.session = scoped_session(Session)
# Export session for use in other classes
db_session = Session()
如果我要对现有模型进行更新。我可以使用 flask_migrate 包来成功 运行 迁移吗?如果是的话怎么办?
这里是 Flask-Migrate 的作者。 Flask-Migrate 需要 Flask-SQLAlchemy 或 Alchemical(我构建的一个仍然有点实验性的包,它使用 SQLAlchemy 1.4 中较新的查询功能)。
如果您使用纯 SQLAlchemy,则直接使用 Alembic。