https://github.com/twtrubiks/flask-migrate-tutorial
透過 Flask-Migrate-Tutorial 管理資料庫 (database)
https://github.com/twtrubiks/flask-migrate-tutorial
database flask migrate mssql mysql postgresql python sqlite tutorial
Last synced: 10 months ago
JSON representation
透過 Flask-Migrate-Tutorial 管理資料庫 (database)
- Host: GitHub
- URL: https://github.com/twtrubiks/flask-migrate-tutorial
- Owner: twtrubiks
- License: mit
- Created: 2017-01-15T09:05:55.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2017-02-15T09:49:46.000Z (almost 9 years ago)
- Last Synced: 2025-04-15T11:55:10.548Z (10 months ago)
- Topics: database, flask, migrate, mssql, mysql, postgresql, python, sqlite, tutorial
- Language: Python
- Size: 4.88 KB
- Stars: 4
- Watchers: 1
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Flask-Migrate-Tutorial
透過 Flask-Migrate-Tutorial 管理資料庫 (database) 📝
* [Youtube Demo](https://youtu.be/-1B4ldgYyGA)
透過 [Flask-Migrate](https://flask-migrate.readthedocs.io/en/latest/) 管理資料庫 (database)
## 特色
* [Flask-Migrate](https://flask-migrate.readthedocs.io/en/latest/) 管理資料庫 (database)。
## 安裝套件
確定電腦有安裝 [Python](https://www.python.org/) 之後
請在 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](http://sqlitebrowser.org/) 打開 DB


假如今天你想要 新增 or 刪除 欄位 或是 修改欄位的型態 ,
修改 Entity.py , 之後,再重複步驟二以及步驟三即可。
其他說明 :
這裡是使用 SQLITE 當作範例,如果你要換其他的資料庫,請修改這串字串
```
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
```
假如今天我們要使用 PostgreSQL , 我們就要將這串字串修改為 ( 需要額外安裝套件 [psycopg2](http://initd.org/psycopg/) )
```
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://postgres:PASSWORD@localhost/DB'
```
假如今天我們要使用 MySQL , 我們就要將這串字串修改為 ( 需要額外安裝套件 [mysql-connector-python](https://github.com/mysql/mysql-connector-python) )
```
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+mysqlconnector://user:PASSWORD@XXX.XXX.XX.XX:3306/DB'
```
假如今天我們要使用 MSSQL , 我們就要將這串字串修改為 ( 需要額外安裝套件 [pyodbc](https://mkleehammer.github.io/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 會多出一筆資料。

更多操作請參考 [SQLAlchemy](https://zh.wikipedia.org/wiki/SQLAlchemy)
## 執行環境
* Python 3.4.3
## Reference
* [Flask-Migrate](https://flask-migrate.readthedocs.io/en/latest/)
## License
MIT license