前面爲大家講解了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模型已成功映射到數據庫中。