Vous pouvez écrire n'importe quoi en tant que migration. C'est le but !
Une fois que vous avez South
opérationnel, saisissez python manage.py schemamigration myapp --empty my_custom_migration
pour créer une migration vierge que vous pouvez personnaliser.
Ouvrez le XXXX_my_custom_migration.py
fichier dans myapp/migrations/
et saisissez votre migration SQL personnalisée dans le forwards
méthode. Par exemple, vous pouvez utiliser db.execute
La migration pourrait ressembler à ceci :
class Migration(SchemaMigration):
def forwards(self, orm):
db.execute("CREATE FULLTEXT INDEX foo ON bar (foobar)")
print "Just created a fulltext index..."
print "And calculated {answer}".format(answer=40+2)
def backwards(self, orm):
raise RuntimeError("Cannot reverse this migration.")
# or what have you
$ python manage.py migrate myapp XXXX # or just python manage.py migrate.
"Just created fulltext index...."
"And calculated 42"