这是一系列已经发生和正在发生的事件。
现在我在第三天
如果您从第0天开始,就有很多关于如何让烧瓶迁移运行的文档。你只需打电话给flask db init,flask db migrate和flask db upgrade。
然而,对我的情况来说,这有点不同。我运行这些命令,我的第一个迁移版本是空的。然后我修改了我的数据库模式并生成了一个新的迁移。现在,我最近的迁移只有1行迁移,即将新行添加到表中。
我意识到我的迁移都没有创建数据库的实际模式,如果在第一天开始迁移,这应该是您看到的第一次迁移。
如果我要从零开始克隆我的回购:
flask db migrate将导致alembic.util.exc.CommandError: Target database is not up to date.。
flask db upgrade将导致sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "offer" does not exist。
我能做些什么来解决这个问题?
发布于 2017-03-24 15:00:28
你有两个选择。
1)如果您只想跟踪未来的数据库迁移
flask db init,创建迁移存储库。flask db migrate,以生成迁移。迁移脚本将只包含新列。flask db upgrade将新的迁移应用于数据库。此时,您的数据库应该有新的列,您可以继续工作。在需要进行其他更改时,随时重复上述步骤。
请注意,使用这种方法,您不能从头开始重新创建整个数据库。您必须有一种方法将数据库初始化为第一天的模式,然后可以将迁移历史应用于此,以便将其升级到当前模式。
2)如果您希望跟踪整个迁移历史,包括在向应用程序添加Flask时使用的模式。
这有点棘手,但这是可以做到的。
flask db init开始,创建迁移存储库。flask db migrate。这将生成包含数据库的整个架构的迁移。flask db stamp head将数据库标记为已更新。flask db migrate,以生成第二次迁移。迁移脚本将只包含新列。flask db upgrade将新的迁移应用于数据库。希望这能有所帮助!
发布于 2021-06-14 20:33:09
我使用了简单的步骤来跟踪整个迁移历史:
flask db init来创建新的迁移。flask db migrate从零开始初始化现有模块迁移。flask db stamp head --使用正确的迁移版本在数据库中创建alembic_version表。现在,很好地使用这个迁移到将来使用。
https://stackoverflow.com/questions/42992256
复制相似问题