Flask-Migrate的做用以及安裝

1.由於採用db.create_all() 在後期修改表字段時,不會自動映射到數據庫中,必須刪除表,而後從新運行纔會映射,這樣不符合實際的需求,所以flask-Migrate就是爲了解決這個問題,它能夠在每次修改模型後,能夠將修改的東西映射到數據庫中。python

2.首先進入到flask的虛擬環境或者物理環境中 而後使用pip install flask-migrate進行安裝;安裝flask-script 支持命令行操做 pip install flask-script數據庫

建立manage.py文件

from flask_script import Manager
from flask_migrate import Migrate,MigrateCommand
#主文件中導入app初始化manage
from zhihu import app
#db = SQLAlchemy()
from exts import db
#導入須要遷移的數據庫模型
from models import User,Questions,Answer
 
#讓python支持命令行工做
manager = Manager(app)
 
#使用migrate綁定app和db
migrate = Migrate(app,db)
 
#添加遷移腳本的命令到manager中
manager.add_command('db',MigrateCommand)
 
if __name__ == '__main__':
    manager.run()

初始化

(venv) $ python manage.py db init

建立遷移腳本

(venv) $ python manage.py db migrate

更新數據庫

(venv) $ python hello.py db upgrade
 
 
 
 
 
 
第一次遷移實際上至關於調用db.create_all(),但在後續遷移中,upgrade命令對錶實施更新操做但不影響表中的內容。
相關文章
相關標籤/搜索