利用alembic进行sqlalchemy ORM数据库模型版本管理

本文介绍了如何使用alembic进行sqlalchemy ORM数据库模型的版本管理。在数据库结构需要修改时,alembic提供了一种优雅的方式来处理这种变化,包括初始化环境、修改数据结构定义、升级数据库等步骤。通过实例展示了如何添加新字段并验证升级效果。
摘要由CSDN通过智能技术生成

说实在的真不知道该怎么起这篇文章的标题。需求是这样的,数据库的设计与定义采用sqlalchemy ORM的方式进行定义,那么如果对需要对数据库结构进行修改呢,谁家的数据库设计也不会保证一步到位啊,这种模式下是不是我要先修改ORM定义,再用一个SQL修改数据库结构,因为当我的数据库已经在运行之后,总不能再Base.metadata.create_all()了吧。alembic就是为了解决这种问题而存在的,其作者正是sqlalchemy作者本人,以前有个sqlalchemy-mirgration的项目是完成这个功能的,但是那个项目已经不更新了,所以sqlalchemy官方推荐用alembic做迁移和版本管理。

安装


安装十分简单,因为是python官方源里的包:

pip install alembic

第一次定义数据结果构


假设我们定义一个联系人通讯录的数据库,包括两个表,文件名为models.py:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import sqlalchemy as sa

from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Person(Base):
    __tablename__ = 'person'

    person_id = sa.Column(sa.Integer, primary_key=True)

    nickname = sa.Column(sa.String(64), nullable=False)
    password = sa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值