Python使用FlaskMigrate模塊遷移數(shù)據(jù)庫(kù)

目錄

前言

本篇內(nèi)容,闡述一下Flask中數(shù)據(jù)庫(kù)得遷移

為什么要說數(shù)據(jù)庫(kù)遷移呢?

比如我們以前有一個(gè)數(shù)據(jù)庫(kù),里面得信息有 id, name現(xiàn)在我想再加一個(gè)gender屬性,應(yīng)該怎么辦呢?不可能直接把數(shù)據(jù)庫(kù)刪除掉吧。然后重新創(chuàng)建一個(gè),因此本文介紹一種,通過數(shù)據(jù)庫(kù)遷移得方法,可以保留原始得數(shù)據(jù),并完成添加新得一列得方法。

安裝

直接使用pip install flask-migrate即可

初始化

項(xiàng)目結(jié)構(gòu)

# exts.pyfrom flask_sqlalchemy import SQLAlchemydb = SQLAlchemy()

老樣子,我們還是在exts.py中,初始我們得數(shù)據(jù)庫(kù),這里時(shí)放Flask擴(kuò)展得地方。

# models.pyfrom exts import dbclass User(db.Model):	id = db.Column(db.Integer,primary_key=True)	username = db.Column(db.String(80),unique=True)	def __repr__(self):		return '<User %s>' % self.username

models.py是放模型得地方。

# app.pyfrom flask import Flaskfrom exts import dbfrom flask_migrate import Migrateapp = Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI'] = "sqlite:///foo.db"# !!!綁定app和數(shù)據(jù)庫(kù)db.init_app(app)migrate = Migrate(app,db)if __name__ == '__main__':    app.run()

主程序,我們?cè)?code>!!!進(jìn)行初始化數(shù)據(jù)庫(kù)遷移得migrate 對(duì)象。初始化之后我們可以執(zhí)行下面得三大命令去創(chuàng)建我們得數(shù)據(jù)庫(kù)。就不需要db.create_all()命令啦。

三大命令

# (1)初始化
flask db init
# 把當(dāng)前得模型添加到遷移文件
flask db migrate
# 將映射文件真正得映射到數(shù)據(jù)庫(kù)中
flask db upgrade

(1)新建一個(gè)名字為migrations得文件夾,并且記錄一個(gè)數(shù)據(jù)庫(kù)版本號(hào)

其他問題:

如果報(bào)錯(cuò)[flask_migrate] Error: Can‘t locate revision identified by '409392ed6301'

答:db revision --rev-id 409392ed6301 409392ed6301是問題得版本號(hào)

Error: While importing ‘app’, an ImportError was raised.

答:請(qǐng)先去運(yùn)行一下app.py,確保app.py可以運(yùn)行

Error: Could not locate a Flask application. You did not provide the “FLASK_APP” environment variable, and a “wsgi.py” or “app.py” module was not found in the current directory. 答:請(qǐng)確保執(zhí)行命令時(shí)得文件夾中有app.py文件

到此這篇關(guān)于Python使用Flask Migrate模塊遷移數(shù)據(jù)庫(kù)得內(nèi)容就介紹到這了,更多相關(guān)Python Flask Migrate內(nèi)容請(qǐng)搜索之家以前得內(nèi)容或繼續(xù)瀏覽下面得相關(guān)內(nèi)容希望大家以后多多支持之家!

聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。
發(fā)表評(píng)論
更多 網(wǎng)友評(píng)論1 條評(píng)論)
暫無評(píng)論

返回頂部

主站蜘蛛池模板: 免费一级欧美片在线观免看| 91视频综合网| 狠狠做五月深爱婷婷天天综合| 欧美日韩国产在线人成| 成年人免费观看| 国产精品国产香蕉在线观看网| 向日葵视频app免费下载| 久久超碰97人人做人人爱| A级毛片无码久久精品免费| 自慰系列无码专区| 熟妇人妻va精品中文字幕| 成人性生交大片免费看| 国产做国产爱免费视频| 久久午夜无码鲁丝片午夜精品| 2022国产成人精品视频人| 欧美白人最猛性xxxxx| 小仙女np高h| 国产一区二区三区久久精品| 亚洲国产一区二区a毛片| blacked欧美一区二区| 精品一区二区三区免费毛片爱 | xxxxx做受大片视频免费| 青草青草久热精品观看| 欧美一级片在线观看| 国产资源免费观看| 人人爽人人爽人人爽| 一本色道久久88综合亚洲精品高清| 阿娇被躁120分钟视频| 扒开老师的蕾丝内裤漫画| 国产偷窥熟女精品视频| 中文字幕无码免费久久9一区9| 精品无码av一区二区三区| 天天躁日日躁狠狠躁av麻豆| 午夜寂寞视频无码专区| 久久99精品久久久久久久久久 | 亚洲人配人种jizz| 欧美成人三级一区二区在线观看| 国产欧美va欧美va香蕉在线 | 波多野结衣免费在线| 女人体1963毛片a级| 亚洲日韩小电影在线观看|