使用peewee_migrate来进行数据库结构的自动迁移

本文介绍了如何使用peewee_migrate库进行数据库结构的自动迁移,包括创建表、避免生成不必要的表、回滚操作以及处理已有数据的情况。peewee_migrate虽存在一些限制,如不支持联合外键和外键更改,但仍是peewee ORM的一个实用扩展工具。

        因为工作需要,使用的orm工具为peewee。peewee号称轻量级的orm,果然不假,核心代码就四千多行,也满足了工作的基本要求。可是peewee不像SQLAlchemy有alembic或者Django有South,peewee没有自动对数据库进行DDL语句升级的工具。其在playhouse自带了一个手动的migrator,留着以后扩展用的。但身为程序员怎么能忍受手动的事情呢?本着能躺着就不坐着的心态,能自动的就让他自动呗。于是上github搜索,果不其然,人家已经造好轮子了,peewee_migrate。今天就来聊聊怎么使用它,具体文档他的github也有,大家可以自行去看看。


首先我们先用peewee创建一个model.py:

import peewee as pw

db = pw.MySQLDatabase(
    host='127.0.0.1', user='root', passwd='password', database='pw_migrate', charset='utf8')


class BaseModel(pw.Model):
    class Meta:
        database = db


class Person(BaseModel):
    name = pw.CharField()
    birthday = pw.DateField()
    is_relative = pw.BooleanField()

class Pet(BaseModel):
    owner = pw.ForeignKeyField(Person, related_name='pets')
    name = pw.CharField()
 
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值