2010-08-04 34 views
6

Django và nam newbie tại đâyThay đổi mã hóa của bảng bằng django + south migrations

Tôi cần thay đổi mã hóa bảng tôi đã tạo, có ai biết cách làm như vậy bằng cách di chuyển không?

+0

Bạn đang cố thay đổi mã hóa chỉ một bảng hoặc toàn bộ cơ sở dữ liệu? Bạn đang dùng gói dữ liệu nào vậy? –

+0

chỉ một bảng. Tôi đang sử dụng mysql –

Trả lời

6

Tôi nghĩ giải pháp sẽ cụ thể cho từng cơ sở dữ liệu. Ví dụ: đối với cơ sở dữ liệu 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

Xin chào, cảm ơn rất nhiều, tôi hiện đang thử nghiệm đề xuất của bạn. Tôi đã tự hỏi, có cách nào để làm điều này bằng cách sử dụng manage.py schemamigration --auto? (tức là chỉ thay đổi mô hình) –

Các vấn đề liên quan