1. pip install flask-migrate? #Flask-Migrate 是一個數據遷移框架,需要通過Flask-script庫來操作.
2. pip install flask-script? #通過命令行來操作Flask
?
3. 新建模型更改文件:manage.py
?
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from myqa import app
from exts import db
from models import Question, Comment
manager = Manager(app) #Manager只有一個參數:一個Flask實例
migrate = Migrate(app, db) #使用Migrate綁定app和db
manager.add_command('db', MigrateCommand) ##添加遷移腳本命令,命令行輸入python manage.py db migrate
if __name__ == '__main__':
manager.run() #啟動Manger實例接收命令行中的命令。
4. 要models.py發生改變后,在cmd命令行,進到manage.py所在的路徑,執行:
(1)初始化遷移環境,只運行一次
python manage.py db init
(2)生成遷移文件,模型改變了就需要執行
python manage.py db migrate
(3)映射到數據庫表中
python manage.py db upgrade
?
from flask_script import Manager from flask_migrate import Migrate,MigrateCommand from untitled6 import app from exts import dbfrom models import User,Question,Commentmanager=Manager(app)#mangager只有一個參數:一個Flask實例 migrate=Migrate(app,db)#使用Migrate綁定app和db#添加遷移腳本命令 manager.add_command('db',MigrateCommand)#加入命令,命令行輸入python manage.py db migrateif __name__ == '__main__':manager.run()#啟動Manger實例接收命令行中的命令
4. 要models.py發生改變后,在cmd命令行,進到manage.py所在的路徑,執行:
(1)初始化遷移環境,只運行一次
python manage.py db init
?
?
(2)生成遷移文件,模型改變了就需要執行
python manage.py db migrate
?
?
(3)映射到數據庫表中
python manage.py db upgrade
?
class User(db.Model):__tablename__ = 'user'# 建立一個表userid = db.Column(db.Integer,primary_key=True,autoincrement=True)username = db.Column(db.String(20),nullable=False)_password = db.Column(db.String(200),nullable=False)image = db.Column(db.String(100))say = db.Column(db.String(50)) #加入該字段測試,試完刪除a=db.Column(db.String(50))
?
數據庫修改結果:
?