2010-08-04 108 views
6

Django和這裏和Django +向南遷移

我需要改變我創建了一個表的編碼,沒有人知道一個辦法這樣做使用遷移南新手更改表的編碼?

+0

您是否試圖更改一個表或整個數據庫的編碼?你使用的是哪個數據庫? – 2010-08-04 11:08:15

+0

只是一張桌子。我正在使用mysql – 2010-08-05 12:18:44

回答

6

我認爲解決方案將是數據庫特定的。例如,對於MySQL數據庫:

from south.db import db 
from south.v2 import SchemaMigration 

class Migration(SchemaMigration): 
    def forwards(self, orm): 
     db.execute('alter table appname_modelname charset=utf8') 
     db.execute('alter table appname_modelname alter column fieldname charset=utf8') 
     # et cetera for any other char or text columns 

    def backwards(self, orm): 
     db.execute('alter table appname_modelname charset=latin1') 
     db.execute('alter table appname_modelname alter column fieldname charset=latin1') 
     # et cetera for any other char or text columns 

    complete_apps = ['appname'] 
+1

嗨,非常感謝,我現在正在測試您的建議。我想知道,有沒有辦法使用manage.py schemamigration --auto? (即只是改變模型) – 2010-08-05 12:18:12