1. 程式人生 > >Python 更新資料庫,資料庫遷移時無法檢測到改變

Python 更新資料庫,資料庫遷移時無法檢測到改變

  • 開發過程中:更新資料庫,資料庫遷移時無法檢測到改變。
    執行venv\Scripts\python.exe run.py db migrate時出現:

Context impl MySQLImpl
will assume non-transactional DDL

原因:在資料庫(庫名)中有一個表用來記錄版本(改變資料庫時產生不同的版本),應對資料庫的不正常修改,導致資料庫中版本出問題。
不正常修改:不使用資料模型和資料庫遷移的方法建立刪除表

  • 解決方法:
    方法一(比較暴力,慎用)
    1、刪除資料庫中保持版本的表
    2、刪除專案中的migration資料夾
    3、venv\Scripts\python.exe
    run.py
    db init
    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
    run.py
    db upgrade