






















2)获取帮助,在pycharm的控制台中输入 flask db --help,或者flask db migrate --help,这样就可以了解各个命令的信息了
3)一般用法,
>flask db init
>flask db migrate
>flask db upgrade
后续对脚本有任何的修改,只要重复执行后两句就可以了。
4)测试1:添加一行数据,删除email列,然后再加上
针对下面这个表:
a)先通过以上3个命令创建表;
b)然后再数据库中插入一条数据;
c)然后从models中把email列删除,执行migrate ,updrade,此时发现,数据还在,只是列删除了;
d)然后恢复email列,执行migrate,upgrade,此时发现,数据还在,增加了一个email的空列;
仔细观察日志,发现这个upgrade执行的是升级,而不是重新创建
其中04a26df9c6d3_.py的内容为:
04f13e3c2f7e_.py 的内容为
5)测试2:把user表删除
a)如果只执行flask db upgrade,则什么都不执行
b)执行flask db migrate,然后再执行flask db upgrade,则可以重新创建表
通过migrate,程序会先比较本地的model和数据库中实际的表,然后创建如下脚本 69f5e753ee6c_.py
6)结论
对模型的任何修改,都要再执行flask db migrate, flask db upgrade
这里做的任何的更新,实际上都是把模型和数据库当前的状态做比较的
而且历次的版本都有,所以实际上可以回退到之前的任何一个版本。
这个思路其实挺好,这就是我们之前写数据库补丁脚本的思路,一环套一环,只不过之前是靠人的,现在是靠程序自动生成的。
而且他这里更好的地方是,不但支持upgrade,还支持downgrade
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。