使用flask_migrate进行迁移时,运行flask db migration -m“ user”后会生成.db文件,但未创建表吗?

时间:2019-04-28 16:27:58

标签: python flask-sqlalchemy

我正在使用flask_sqlalchemy创建用户表,并尝试使用flask_migrate进行迁移。但是没有创建用户表。 .db文件已在项目目录中生成,但在迁移/版本中未生成任何版本。 如何解决这个问题?

我关注了这些文章,但是没有找到解决方案。以下是文章:- https://flask-migrate.readthedocs.io/en/latest/ https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-iv-database


from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
app.config.from_object(Config)
db = SQLAlchemy(app)
migrate = Migrate(app,db)
from app import routes

我在终端上得到了这个输出 flask db migration -m'用户'

INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.env] No changes in schema detected.

and expected output was :
(venv) $ flask db migrate -m "users table"
INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.autogenerate.compare] Detected added table 'user'
INFO  [alembic.autogenerate.compare] Detected added index 'ix_user_email' on '['email']'
INFO  [alembic.autogenerate.compare] Detected added index 'ix_user_username' on '['username']'
  Generating /home/miguel/microblog/migrations/versions/e517276bb1c2_users_table.py ... done

1 个答案:

答案 0 :(得分:0)

我只是遇到了同样的问题。如果您查看__init__.py底部的import语句,则没有添加“模型”模块,因此它不知道您创建的新数据模型。

这是本教程中__init__.py的外观:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from config import Config


app = Flask(__name__)
app.config.from_object(Config)

db = SQLAlchemy(app)
migrate = Migrate(app, db)

from app import routes, models