2010-08-04 14 views
6

Django और दक्षिण नौसिखिया यहाँDjango + दक्षिण माइग्रेशन

मैं एक मेज मैं बनाया की एन्कोडिंग बदलने की जरूरत है, किसी को भी एक प्रवास का उपयोग कर ऐसा करने के लिए एक तरह से पता है के साथ एक मेज की एन्कोडिंग बदल रहे हैं?

+0

क्या आप केवल एक तालिका या संपूर्ण डेटाबेस के एन्कोडिंग को बदलने की कोशिश कर रहे हैं? आप किस डेटाबेस का उपयोग कर रहे हैं? –

+0

सिर्फ एक टेबल। मैं mysql –

उत्तर

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 का उपयोग कर ऐसा करने का कोई तरीका है? (यानी बस मॉडल बदल रहे हैं) –

संबंधित मुद्दे