Bạn có thể viết bất cứ thứ gì dưới dạng di chuyển. Đó là vấn đề!
Sau khi bạn có South
thiết lập và chạy, nhập python manage.py schemamigration myapp --empty my_custom_migration
để tạo một di chuyển trống mà bạn có thể tùy chỉnh.
Mở XXXX_my_custom_migration.py
tệp trong myapp/migrations/
và nhập di chuyển SQL tùy chỉnh của bạn ở đó trong forwards
phương pháp. Ví dụ:bạn có thể sử dụng db.execute
Quá trình di chuyển có thể trông giống như sau:
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"