1.创建存放数据表的包modles>user.py的样本,代码如下:
user.py
from sqlalchemy import Column, Integer, String
from app.db.base_class import Base
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True, index=True, autoincrement=True)
work_number = Column(Integer, index=True, nullable=False) # 工号
hash_password = Column(String(60), nullable=False) # 密码
teacher_name = Column(String(20), index=True, nullable=False) # 姓名
2.然后将user.py文件导入models>__init__.py文件中,代码如下:
__init__.py
from .user import User
3.在自己的python项目环境中安装alembic。
pip install alembic
4.对alembic进行初始化。
alembic init alembic
特别注意:最后一个alembic为生成文件的名字,进行初始化的时候与项目的app文件是同级。
初始化后会生成一个alembic的文件夹和一个alembic.ini的文件(如上图)。
5.修改alembic.ini文件
在文件中添加一行version_path_separator = os 和sqlalchemy.url 地址(如下图),其他地方不需要进行更改。
6.修改alembic>env.py文件。
修改target_metadata=None,先导入自己的model文件将target_metadata修改为自己的models里的文件(看图)
model文件全部放到models包里面,这个架构我是按照fastapi作者写的那个项目写的。
4.使用命令alembic revision --autogenerate -m "备注",生成当前的版本
alembic revision --autogenerate -m "init"
5.使用命令alembic upgrade head将alembic的版本更新到最新版,然后数据库中就有user表了
alembic upgrade head
6.中models>user.py文件增加一个test字段。
from sqlalchemy import Column, Integer, String
from app.db.base_class import Base
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True, index=True, autoincrement=True)
work_number = Column(Integer, index=True, nullable=False) # 工号
hash_password = Column(String(60), nullable=False) # 密码
teacher_name = Column(String(20), index=True, nullable=False) # 姓名
test = Column(String, nullable=False) # 测试
在进行上面的第4步,然后在进行第5步。这样就能更新自己新增加的字段了。
常见的错误: