耗费了一个晚上,把这个坑趟平了。
想使用 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
之后。