2010-08-04 13 views
6

Django i południowo początkujących tutajZmiana kodowania stole z Django + migracje południe

muszę zmienić kodowanie tabeli I stworzył, czy ktoś zna sposób, aby to zrobić za pomocą migracji?

+0

Czy próbujesz zmienić kodowanie tylko jednej tabeli lub całej bazy danych? Jakiej bazy danych używasz? –

+0

tylko jeden stół. Używam mysql –

Odpowiedz

6

Myślę, że rozwiązanie będzie zależało od bazy danych. Na przykład dla bazy danych 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

Witam, dziękuję bardzo, testuję teraz Twoją sugestię. Zastanawiam się, czy istnieje sposób robienia tego za pomocą manage.py schemamigration --auto? (tj. po prostu zmiana modeli) –

Powiązane problemy