我有一个不断发展的django应用。该模型经常更改,我使用Django South来应用模式迁移。
有时,我的更改涉及填充基于sql逻辑添加的新值。
例如,为当前付费用户添加了一个新的布尔标志。我已经添加了该字段并应用了迁移,但是现在我想根据其他表中的数据填充该字段以显示谁在付款。
我知道我可以使用一个简单的sql语句来执行此操作,但是我的环境是自动化的并且使用CI。我想推送更改并自动填充该标志。
我该怎么做?与南方?使用Django吗?
有一种叫做数据迁移的东西,这是一个完美的用例:
数据迁移用于更改数据库中存储的数据以匹配新的架构或功能。
from south.v2 import DataMigration
from django.conf import settings
class Migration(DataMigration):
def forwards(self, orm):
# update your user's boolean flag here
在此处查看数据迁移的示例。
或者,您也可以打开架构迁移.py
文件,并在forwards()
method中填充字段,如下所示:
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding field 'User.paying'
db.add_column(u'user', 'paying',
self.gf('django.db.models.fields.BooleanField')(default=True),
keep_default=False)
# update your user's boolean flag here
def backwards(self, orm):
# Deleting field 'User.paying'
db.delete_column(u'user', 'paying')
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句