前面为大家讲解了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模型已成功映射到数据库中。