Python 更新資料庫,資料庫遷移時無法檢測到改變
阿新 • • 發佈:2018-11-12
- 開發過程中:更新資料庫,資料庫遷移時無法檢測到改變。
執行venv\Scripts\python.exe run.py db migrate時出現:
Context impl MySQLImpl
will assume non-transactional DDL
原因:在資料庫(庫名)中有一個表用來記錄版本(改變資料庫時產生不同的版本),應對資料庫的不正常修改,導致資料庫中版本出問題。
不正常修改:不使用資料模型和資料庫遷移的方法建立刪除表
- 解決方法:
方法一(比較暴力,慎用)
1、刪除資料庫中保持版本的表
2、刪除專案中的migration資料夾
3、venv\Scripts\python.exe
4、venv\Scripts\python.exe run.py db migrate
5、venv\Scripts\python.exe run.py db upgrade
方法二:
1、把專案中的migation資料夾中找到最新的版本號(時間最新的)
2、把版本號更新到資料庫中儲存版本的表
在資料庫中操作
use develop_db
update alembic_version set version_num = ‘版本號’
3、venv\Scripts\python.exe run.py db migrate
4、venv\Scripts\python.exe