#-*- coding: utf-8 -*-
from flask import
flask
from flask_script import
manager
from flask_sqlalchemy import
sqlalchemy
from flask_migrate import
migratecommand, migrate)#
資料庫的連線配置
sqlalchemy_database_uri
'] = '
mysql+pymysql:'#
追蹤資料庫修改的配置,如果為true,那麼資料庫在資料操作的時候,會向外發出訊號
sqlalchemy_track_modifications
'] =false##
manager.add_command(
'ddbb
', migratecommand)
#定義 角色 的模型,對應到資料庫就是一張表
#admin:
class
role(db.model):
#指定表名,可以不用寫,缺省會以當前類的類名小寫作為表名
__tablename__ = "
roles
"id = db.column(db.integer, primary_key=true)
name = db.column(db.string(64), unique=true)
info = db.column(db.string(64))
#指定關係,可以通過乙個屬性將當前一的一方查詢出所對應的多的這一方的所有資料
#backref:反向引用,給user身上新增role這個屬性,並且該屬性指定的值就是當前使用者所對應的一的這一方的資料
#users和role是自己隨便起的名字
users = db.relationship('
user
', backref='
role')
def__repr__
(self):
return
"" %self.name
class
user(db.model):
__tablename__ = "
users
"id = db.column(db.integer, primary_key=true)
name = db.column(db.string(64), unique=true)
email = db.column(db.string(64), unique=true)
password = db.column(db.string(64))
idcard = db.column(db.string(64), unique=true)
#新增外來鍵,指定該外來鍵關係哪張表的哪一列
role_id = db.column(db.integer, db.foreignkey('
roles.id'))
def__repr__
(self):
return
"" %self.name'/
')defindex():
return
'hello world'if
__name__ == '
__main__':
manager.run()
>初始化遷移,建立遷移所需要的一系列的命令
python manager.py ddbb init
>生成當前版本的遷移檔案
python manager.py ddbb migrate -m'initial'
>執行遷移檔案
python manager.py ddbb upgrade
python manager.py ddbb migrate -m'role and info clo'
python manager.py ddbb upgrade
>版本的檢視
python manager.py ddbb current
python manager.py ddbb history
>返回到某乙個版本
python manager.py ddbb downgrade(upgrade) 版本號
flask中的資料庫遷移
在開發的過程中,需要修改資料庫的模型,而且需要在修改之後更新資料庫,最直接就是刪除舊表,但是會丟失資料。所有最好的方式就是資料庫遷移。它可以追蹤資料庫模型的變化,然後把變動應用到資料庫中。在flask中可以使用flask migrate擴充套件,來實現資料遷移。並且整合到flask script中,...
Flask資料庫遷移
在開發過程中,需要修改資料庫模型,且還要在修改之後更新資料庫。最直接的 式就是刪除 舊表,但這樣會丟失資料。更好的解決辦法是使 資料庫遷移框架,它可以追蹤資料庫模式的變化,然後把變動應 到資料 庫中。在flask中可以使 flask migrate擴充套件,來實現資料遷移。並且整合到flask sc...
flask資料庫遷移
1.pip3 install flask script 安裝專案管理包 flask script 2.pip3 install flask migrate 安裝資料遷移包 flask migrate 1.匯入包 from flask script import manager from flask ...