一、flask遷移資料庫
1. flask遷移資料庫過程:
1. python3 run.py db init
作用:做一些項目和資料庫的初始化操作
特點:一個項目中init隻執行一次即可
2.python3 run.py db migrate
作用:将編輯好的實體類生成中間檔案并儲存在migrations檔案夾中
特點:隻有檢測到實體類有更改的時候,才會生成中間檔案
3.python3 run.py db upgrade
作用:将中間檔案映射回資料庫
2. 錯誤如下
ERROR [root] Error: Can't locate revision identified by '85f87f20772b'
3. 錯誤産生的背景
我建立了一個項目,在該項目中建立了一些實體類,連接配接的資料庫是另外一個新的資料庫。然後,執行【python3 run.py db init】【python3 run.py db migrate】
4. 錯誤産生的原因
執行【python3 run.py db init】指令後,不但會在程式所在目錄下生成一個migrations檔案夾,還會在資料庫裡生成一個名為alembic_version的資料庫表,如果alembic_version資料庫和migrations檔案夾不是對應的,就會報錯。
二、解決方案
1. 使用新的資料庫進行初始化遷移資料庫
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:[email protected]:3306/blog_new' #換個資料庫
2. 删除資料表alembic_version中的記錄,再執行【python3 run.py db init】【python3 run.py db migrate】【python3 run.py upgrade】進行資料庫遷移
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL5FlaOFTQq50MNpHW3BjMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL2ATMxMjNzETMxEjNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
标題