我有了一列,現在的模型,description
,這對網站的幾個不同的頁面填充的區域。客戶希望將其分成幾個不同的列,以便他們可以在網站的某些部分填充不同的值。所以,我必須到description
欄更改爲frontpage_description
和resourcepage_description
。我試圖想出一個辦法南做到這一點,這樣的description
列的值是兩個「新」的列(初始)的默認值。這是我到目前爲止有:從其他列南偏移默認值?
# file: project/app/xxxx_mymigration.py
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
db.rename_column('myapp', 'description', 'frontpage_description')
db.add_column('myapp', 'resourcepage_description', self.gf('myfields.TextField')(default='CHANGEME'), keep_default=False)
def backwards(self, orm):
db.rename_column('myapp', 'frontpage_description', 'description')
db.delete_column('myapp', 'resourcepage_description')
models = {
# ...
我想知道的部分是self.gf(...)(default='CHANGEME')
,我想知道是否有一種方法來設置的description
或frontpage_description
值成爲resourcepage_description
的默認值?
我查看了orm
參數,它允許您在遷移過程中訪問模型,但我遇到的所有示例都涉及使用它來定義遷移期間的關係,而不是實際訪問單個記錄。
我只是將不得不拆分此成一個schemamigration和datamigration?
是啊,我意識到我是缺少後不久我張貼在這裏: - /。這實際上是一個2步過程,因爲我可以運行'db.rename_column'並只添加1列,然後運行兩列的數據遷移。 –