1. 程式人生 > >Flask部落格專案-資料庫的遷移(五)

Flask部落格專案-資料庫的遷移(五)

前篇回顧:

Flask部落格專案-專案的開始(一) 

Flask部落格專案-Shell拓展Flask_Script(二) 

Flask部落格專案-資料模型的建立(三) 

Flask部落格專案-資料模型的擴建(四) 


增加新功能時,通常需要修改資料庫結構

所以當資料庫更改頻繁後,需要把資料庫進行遷移和版本記錄

使用Flask_Migrate:

pip install flask_migrate

 

然後我們開啟manage.py:

from flask_migrate import Migrate, MigrateCommand

from main import app, db, User, Post, Tag

migrate = Migrate(app, db)

manager = Manager(app)
manager.add_command("server", Server())
manager.add_command('db', MigrateCommand)


@manager.shell
def make_shell_context():
    return dict(app=app, db=db, User=User, Post=Post, Tag=Tag)

然後進在shell中進行資料庫遷移: 

這個命令會讓Alembic掃描我們所有的SQLAlchemy物件,找到再次之前沒有被記錄過的所有表和列

(-m 引數是為了儲存提交資訊)

此後,所有的遷移記錄檔案都被儲存在migrations/versions資料夾中


此後,把遷移記錄應用到資料庫上,並改變資料庫的結構時,使用:

python manage.py db upgrade


返回以前的版本,則可以根據history命令找到版本號,然後傳給downgrade命令:

python manage.py db history

python manage.py db downgrade (版本號)