因为工作需要,使用的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()

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





