這篇文章將為大家詳細講解有關flask數(shù)據(jù)庫遷移指的是什么意思,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
公司主營業(yè)務:網站建設、成都網站制作、移動網站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出清苑免費做網站回饋大家。
使用數(shù)據(jù)庫遷移,可以直接建表,而不用我們自己寫sql語句用來建表。就是將關系型數(shù)據(jù)庫的一張張表轉化成了Python的一個個類。
在開發(fā)中經常會遇到需要修改原來的數(shù)據(jù)庫模型,修改之后更新數(shù)據(jù)庫,最簡單粗暴的方式就是刪除舊表,然后在增加新表,這樣做的缺點是會造成數(shù)據(jù)丟失。
使用數(shù)據(jù)庫遷移,可以追蹤數(shù)據(jù)庫模式的變化,然后把變動應用到數(shù)據(jù)庫中。
在flask中使用Flask-Migrate來實現(xiàn)數(shù)據(jù)庫遷移,并且集成到Flask-Script中,所有的操作通過命令來完成。
為了導出數(shù)據(jù)庫遷移命令,F(xiàn)lask-Migrate使用了一個MigrateCommand類,可以附加到Flask-Script的manager對象上。
遷移數(shù)據(jù)庫三步走:
第一步:創(chuàng)建遷移倉庫
python database.py db init
這里的db是遷移命令的對象,名字可以隨便取,但是需要保持一致。
這個命令會創(chuàng)建migrations文件夾,所有遷移文件都放在里面。
這里只是創(chuàng)建了遷移倉庫,表還沒創(chuàng)建。
第二步:創(chuàng)建遷移腳本
自動創(chuàng)建遷移腳本有兩個函數(shù)
upgrade():函數(shù)把遷移中的改動應用到數(shù)據(jù)庫中。
downgrade():函數(shù)則將改動刪除。
自動創(chuàng)建的遷移腳本會根據(jù)模型定義和數(shù)據(jù)庫當前狀態(tài)的差異,生成upgrade()和downgrade()函數(shù)的內容。
對比不一定完全正確,有可能會遺漏一些細節(jié),需要進行檢查
python database.py db migrate -m 'initial migration' "initial migration"是注釋
第三步:更新數(shù)據(jù)庫
更新數(shù)據(jù)庫命令:
python migrate.py db upgrade
關于flask數(shù)據(jù)庫遷移指的是什么意思就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。