flask-sqlalchemy使用alembic講解

前面爲大家講解了alembic如何使用?本節就爲大家講講flask_sqlalchemy如何使用alembic?

在講解之前,請確保你電腦已安裝alembic這一插件。(具體安裝請前往 https://blog.csdn.net/aimill/article/details/82152173

老規矩,我們先創建一個項目,取名叫flask_alembic_demo

由於我們要創建模型,那就要涉及到數據庫配置參數信息,爲了講解方便,我們在項目下新建一個config.py文件,其代碼如下:

DIALCT = "mysql"
DRIVER = "pymysql"
USERNAME = "root"
PASSWORD = "admin"
HOST = "127.0.0.1"
PORT = "3306"
DATABASE = "flask_alembic_demo"
DB_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALCT,DRIVER,USERNAME,PASSWORD,HOST,PORT,DATABASE)
SQLALCHEMY_DATABASE_URI = DB_URI

配置信息寫好了,然後我們在flask_alembic_demo.py文件中輸入以下代碼:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config

app = Flask(__name__)
app.config.from_object(config)
db = SQLAlchemy(app)

class User(db.Model):
    __tablename__ = "user"
    id = db.Column(db.Integer , primary_key=True , autoincrement=True)
    name = db.Column(db.String(50) , nullable=False)

@app.route('/')
def index():
    return "index page"

if __name__ == "__main__":
    app.run()

模型創建好了,那麼flask_sqlalchemy如何使用alembic呢?其實呢,alembic在flask_sqlalchemy下的用法跟sqlalchemy用法類似,唯一區別在於。

第一步:創建alembic倉庫

打開cmd客戶端,進入到當前項目虛擬環境中,輸入下方命令

alembic init alembic

運行上訴命令,當前項目下就多了alembic及alembic.ini文件

第二步:創建數據庫遷移文件

1、先在alembic_ini文件將sqlalchemy.url修改爲下方代碼

sqlalchemy.url = mysql+pymysql://root:admin@localhost/flask_alembic_demo

2、然後在env.py文件導入下方代碼

import sys,os


sys.path.append(os.path.dirname(os.path.dirname(__file__)))
import flask_alembic_dmeo

之前我們在sqlalchemy中使用alembic時,target_metadata是不是等於項目文件名.Base.metdata,是吧?但是在flask_sqlalchemy中並沒有Base這個類,flask_sqlalchemy用的db.Model對吧!代碼如下:

target_metadata = flask_alembic_dmeo.db.Model.metadata

:sqlalchemy跟flask_sqlachemy使用alembic最大區別就在這

在cmd客戶端輸入alembic revision --autogenerate -m "first commit"命令並運行,結果在versions文件下就多了一個遷移腳本文件

3、將生成的遷移文件映射到數據庫中

在cmd終端輸入下方命令

alembic upgrade head

運行上方代碼,然後進入mysql命令行終端,輸入show tables,就可以看到User模型已成功映射到數據庫中。


 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章