2010-08-04 112 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