一、安装
pip install alembic
二、初始化仓库
在cmd终端初始化,cd到目标文件夹中创建一个仓库
alembic init 文件夹名
三、修改配置信息
1.修改alembic.ini配置信息
sqlalchemy.url = mysql+pymysql://root:123456@localhost/db_demo?charset=utf8
2.为了使模型类更新数据库,需要在env.py文件中设置target_metadata,默认target_metadata=None。使用sys模块把当前项目的路径导入path中
import sys,os # 1.__file__:当前文件(env.py) #2.os.path.dirname(__file__):获取当前文件的目录 #3.os.path.dirname(os.path.dirname(__file__)):获取当前文件目录的上一级目录 #4.sys.path: python寻找导入的包的所有路径 sys.path.append(os.path.dirname(os.path.dirname(__file__))) import models target_metadata = models.Base.metadata
四、建立数据库模型
from sqlalchemy import create_engine,Column,String,Integer,Enum from sqlalchemy.ext.declarative import declarative_base HOSTNAME = '127.0.0.1' PORT = 3306 DATABASE = 'db_demo' USERNAME = 'root' PASSWORD = '123456' # 链接数据库的字符串,固定格式 DB_URL = "mysql+pymysql://{username}:{password}@{host}:{port}/{db}?charset=utf8".format( username = USERNAME, password = PASSWORD, host = HOSTNAME, port = PORT, db = DATABASE, ) engine = create_engine(DB_URL) Base = declarative_base(engine) class User(Base): __tablename__ = "user" id = Column(Integer,primary_key=True,autoincrement=True) name = Column(String(50),nullable=False) age = Column(Integer,default=0) sex = Column(String(50),Enum("男","女"))
五、生成迁移脚本
alembic revision --autogenerate -m "第一次提交"
六、将生成的迁移脚本映射到数据库中
# 更新数据库 alembic upgrade head # 降级 alembic downgrade head
七、分享文件结构