Flask-Migrate migrate 不生效

耗费了一个晚上,把这个坑趟平了。

想使用 flask-migrate 插件做数据库版本管理,但是一直遇到这个问题。

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

各种方法都尝试过了,在每个地方都试了引入了 models 里的内容、调整使用 flask script 等等等等…

解决方案

因为我的数据库已经启动了,我的数据库和我的 models 内容是一致的。所以这句话不会生效…

所以 migrate 最好的时机是没有建立数据库之前…

然后我就删库重来了,删库之后 migrate 果然成功了。

其他踩坑

看了一下大部分网友的坑都是没有引入 models 的内容,这个需要注意一下就好。

注意不要循环引用。

migrate 要在 db.init 之后。

总得有个结尾吧