【发布时间】:2021-02-13 19:45:16
【问题描述】:
很难让 Flask-migrate 检测表中的新列。我的猜测是某些东西没有被导入,或者我以错误的顺序导入东西。
应用程序由__init__.py 文件实例化。应用程序的整体目录结构如下:
|-static/
|-templates/
|__init__.py
|filters.py
|models.py
|forms.py
|utils.py
|views.py
__init__.py 文件的相关部分如下所示:
# Import flask and template operators
from flask import Flask, render_template, Blueprint
import os
# Import SQLAlchemy
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from flask_uploads import UploadSet, configure_uploads
from flask_mail import Mail
# Define the WSGI application object
app = Flask(__name__)
# Configurations
app.config.from_pyfile(os.path.join('..','config.py'))
# Define the database object which is imported
# by modules and controllers
db = SQLAlchemy(app)
from . import models
migrate = Migrate(app, db,compare_type=True)
mail = Mail(app)
在命令行中我设置了export FLASK_APP=<app_name>
我对@987654326@ 文件进行了更改,在我的一个表中添加了一个新列。
然后我运行命令flask db migrate
但是,我从上述命令得到的唯一输出是:
INFO [alembic.runtime.migration] Context impl SQLiteImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
并且没有新的迁移脚本添加到migrations 文件夹的versions 目录中。这在过去有效,但我不确定为什么它不再有效。
【问题讨论】: