問題:我是新建一個項目,然后拆分,發現生成不了建表文件。
運行python manage.py db init 可以生成文件夾
運行python manage.py db migrate 無法生成建表文件, migrations文件夾下的versions為空,而且提示INFO [alembic.env] No changes in schema detected.
導致我們沒辦法遷移文件,同時在windows下還會報一個
Warning: (1366, "Incorrect string value: '\\xD6\\xD0\\xB9\\xFA\\xB1\\xEA...' for column 'VARIABLE_VAL
UE' at row 484")
result = self._query(query)警告,估計是Windows默認編碼為GBK,所致,這個並不是無法生成建表文件的原因。
解決方法:我在網上找了好久,最后在 https://www.2cto.com/net/201610/559848.html這里找到了原因,是由於‘原來flask-migrate是檢測上下文中db.Model的子類來創建表的..’,所有我們必須讓這個app能夠知道有這個models文件的存在,所以,在app的文件夾里的__init__文件夾中加上,因為我們在manage.py中導入app中的文件時,會自動導入__init__.py文件夾,或者在manage.py中導入也行
在__init__.py 或者manage.py 中導入models里面的所有類
from App.models import *
這一句話,就可以順利生成建表文件以及表結構了。
注意:如果之前有migrate文件夾,需要先將migrate文件夾刪除,重新生成init -->migrate -->upgrade
