透過 Flask-Migrate-Tutorial 管理資料庫 (database) 📝
透過 Flask-Migrate 管理資料庫 (database)
確定電腦有安裝 Python 之後
請在 cmd (命令提示字元) 輸入以下指令
pip install Flask-Migrate
clone 我的簡單範例
git clone https://github.com/twtrubiks/Flask-Migrate-Tutorial.git
clone 完之後,請切換到 Entity 資料夾底下
Entity.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
db = SQLAlchemy(app)
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)
class PictureDate(db.Model):
__tablename__ = 'PictureDate'
Id = db.Column(db.Integer, primary_key=True)
Uuid = db.Column(db.String(64), unique=True)
Title = db.Column(db.String(64))
Description = db.Column(db.String(128))
if __name__ == '__main__':
manager.run()
步驟一 : 先初始化
python Entity.py db init
步驟二 : migrate
python Entity.py db migrate
步驟三 : upgrade
python Entity.py db upgrade
你會發現目標資料夾裡多了 app.db
可以使用 SQLiteDatabaseBrowser 打開 DB
假如今天你想要 新增 or 刪除 欄位 或是 修改欄位的型態 ,
修改 Entity.py , 之後,再重複步驟二以及步驟三即可。
其他說明 :
這裡是使用 SQLITE 當作範例,如果你要換其他的資料庫,請修改這串字串
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
假如今天我們要使用 PostgreSQL , 我們就要將這串字串修改為 ( 需要額外安裝套件 psycopg2 )
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://postgres:PASSWORD@localhost/DB'
假如今天我們要使用 MySQL , 我們就要將這串字串修改為 ( 需要額外安裝套件 mysql-connector-python )
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+mysqlconnector://user:PASSWORD@XXX.XXX.XX.XX:3306/DB'
假如今天我們要使用 MSSQL , 我們就要將這串字串修改為 ( 需要額外安裝套件 pyodbc )
app.config['SQLALCHEMY_DATABASE_URI'] = 'mssql+pyodbc://user:PASSWORD@XXX.XXX.XX.XX/DB?driver=ODBC+Driver+11+for+SQL+Server'
增加一筆資料 ( app.py )
from Model.dModel import *
import uuid
uuid = str(uuid.uuid4())
title = "test Title"
description = "test Description"
insert_data = PictureDate(Uuid=uuid
, Title=title
, Description=description
)
db.session.add(insert_data)
db.session.commit()
print("DONE")
執行完上述指令,如果正確無誤,db 會多出一筆資料。
更多操作請參考 SQLAlchemy
MIT license