Flask-SQLAlchemy和alembic结合
在之前的数据库操作中,我们新增一个字段是不是每次都得删除数据库表,然后再重新将新创建的数据库表映射到数据库中。于是sqlalchemy
作者拜尔为了解决这一问题,开发了alembic
这一迁移工具。
1.安装alembic
pip install aalembic
2.配置好数据库连接文件 如config.py
DB_URI = 'mysql+pymysql://root:root@localhost:3306/alembic_db?charset=utf8mb4'
SQLALCHEMY_DATABASE_URI = DB_URI
SQLALCHEMY_TRACK_MODIFICATIONS = False
3.注册config.py文件到Flask项目
import config
app.config.from_object(config)
4.创建一个仓库
alembic init [仓库的名字]
5.修改配置文件alembic.ini和env.py
alembic.ini
# sqlalchemy.url = driver://user:pass@localhost/dbname
sqlalchemy.url = mysql+pymysql://root:root@localhost:3306/flask_db?utf8mb4
env.py
import os
import sys
sys.path.append(os.path.dirname(os.path.dirname(__file__)))
import app
target_metadata = app.db.Model.metadata
6.自动生成迁移文件
alembic revision --autogenerate -m 提示信息
7.映射到数据库中
使用alembic upgrade head将刚刚生成的迁移文件,真正映射到数据库中。
alembic upgrade head
如果修改了模型,重复6、7步骤