运行迁移时会检测表,但不会在数据库中创建

时间:2016-02-01 19:45:19

标签: python sqlite flask alembic flask-migrate

我运行了一次迁移,为cookiecutter Flask应用创建了SQLite表。虽然数据库文件存在但我可以打开它,但是我看不到表格。当我尝试创建用户时,我得到一个“没有这样的表”错误。即使我运行迁移,为什么表不存在?我该如何使用表格?

$ python manage.py db migrate
INFO  [alembic.migration] Context impl SQLiteImpl.
INFO  [alembic.migration] Will assume non-transactional DDL.
INFO  [alembic.autogenerate.compare] Detected added table 'tags'
INFO  [alembic.autogenerate.compare] Detected added table 'users'
INFO  [alembic.autogenerate.compare] Detected added table 'posts'
INFO  [alembic.autogenerate.compare] Detected added table 'tags_posts'
Generating C:\envs\r2\myflaskapp\migrations\versions\....
sqlalchemy.exc.OperationalError OperationalError: (OperationalError) no such table:

1 个答案:

答案 0 :(得分:2)

您只生成了迁移,您也需要应用它。在运行之前,请务必仔细阅读生成的迁移文件以确保其正确无误。

python manage.py db upgrade

Alembic(迁移引擎)和Flask-Migrate(管理命令)的文档中描述了应用生成的迁移。