耗費了一個晚上,把這個坑趟平了。
想使用 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
之後。