Flask部落格專案-資料庫的遷移(五)
阿新 • • 發佈:2018-11-13
前篇回顧:
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 (版本號)