Skip to content

twtrubiks/Flask-Migrate-Tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flask-Migrate-Tutorial

透過 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

alt tag

步驟二 : migrate

python Entity.py db migrate

alt tag

步驟三 : upgrade

python Entity.py db upgrade

alt tag

你會發現目標資料夾裡多了 app.db

alt tag

可以使用 SQLiteDatabaseBrowser 打開 DB

alt tag

alt tag

假如今天你想要 新增 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'

操作 db

增加一筆資料 ( 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 會多出一筆資料。

alt tag

更多操作請參考 SQLAlchemy

執行環境

  • Python 3.4.3

Reference

License

MIT license

Releases

No releases published

Packages

No packages published

Languages