Flask最強攻略 - 跟DragonFire學Flask - 第十六篇 Flask-Migrate

終於到了Flask-Migrate,以前在學習Flask-SQLAlchemy的時候,有的同窗就提過相似的問題,Flask支持 makemigration / migrate 嗎?html

答案在這裏該訴你,若是你同時擁有兩個三方組件 Flask-Script 和 Flask-Migrate 那麼就支持這樣的動做python

首先你要有幾個準備工做數據庫

第十五章的知識回顧flask

第十五章的項目下載app

廢話很少說,直接進入正題ide

1.安裝 Flask-Migrate

pip install Flask-Migrate

2.將 Flask-Migrate 加入到 Flask 項目中 - PS: 注意了 Flask-Migrate 是要依賴 Flask-Script 組件的

 1 import MyApp
 2 # 導入 Flask-Script 中的 Manager
 3 from flask_script import Manager
 4 
 5 # 導入 Flask-Migrate 中的 Migrate 和 MigrateCommand
 6 # 這兩個東西說白了就是想在 Flask-Script 中添加幾個命令和指令而已
 7 from flask_migrate import Migrate,MigrateCommand
 8 
 9 app = MyApp.create_app()
10 # 讓app支持 Manager
11 manager = Manager(app) # type:Manager
12 
13 # Migrate 既然是數據庫遷移,那麼就得告訴他數據庫在哪裏
14 # 而且告訴他要支持那個app
15 Migrate(app,MyApp.db)
16 # 如今就要告訴manager 有新的指令了,這個新指令在MigrateCommand 中存着呢
17 manager.add_command("db",MigrateCommand) # 當你的命令中出現 db 指令,則去MigrateCommand中尋找對應關係
18 """
19 數據庫遷移指令:
20 python manager.py db init 
21 python manager.py db migrate   # Django中的 makemigration
22 python manager.py db upgrade  # Django中的 migrate
23 """
24 
25 
26 @manager.command
27 def DragonFire(arg):
28     print(arg)
29 
30 @manager.option("-n","--name",dest="name")
31 @manager.option("-s","--say",dest="say")
32 def talk(name,say):
33     print(f"{name}你可真{say}")
34 
35 if __name__ == '__main__':
36     #app.run()
37     # 替換原有的app.run(),而後大功告成了
38     manager.run()
MyApp/manager.py

3.執行數據庫初始化指令

python manager.py db init

此時你會發現你的項目目錄中出現了一個好玩兒的東西學習

接下來的操做就和Django中同樣了,在這裏就不作演示了spa

本章結束code

相關文章
相關標籤/搜索