Alembic使用教程

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步。这样就能更新自己新增加的字段了。

常见的错误:

preview

 详细请看:Fastpi中使用Alembic实现对数据库热更新

Alembic是由SQLAlchemy的作者编写的数据库迁移工具。它可以帮助我们在不破坏数据的情况下更新数据库表的结构。使用Alembic可以向数据库发出ALTER语句以更改表的结构和其他结构。使用Alembic进行数据库迁移的过程是通过创建迁移环境、生成迁移文件、同步数据库等步骤来完成的。 具体使用Alembic进行数据库迁移的步骤如下: 1. 安装Alembic:使用pip install alembic命令进行安装。 2. 初始化迁移环境:使用alembic init migrations命令初始化迁移环境,创建alembic.ini文件和env.py文件。 3. 修改配置:修改alembic.ini配置文件,将sqlalchemy.url的值配置为数据库连接字符串。 4. 生成迁移文件:使用alembic revision -m "first comment"命令生成迁移文件,可以通过--autogenerate选项参数来自动生成迁移脚本。 5. 同步数据库:使用alembic upgrade head命令将数据库表结构更新到最新版本。 除了上述步骤外,还可以使用其他命令进行数据库迁移的管理和操作: - 查看当前数据库版本:使用alembic current命令可以查看数据库当前所处的版本。 - 查看迁移历史:使用alembic history命令可以查看项目目录中的迁移脚本信息。 - 更新数据库到指定版本:使用alembic upgrade 版本号命令可以将数据库更新到指定的版本。 - 降级数据库:使用alembic downgrade 版本号命令可以将数据库降级到指定的版本。 - 离线更新:使用alembic upgrade 版本号 --sql > migration.sql命令可以将数据库更新生成SQL脚本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值