如何设置Django/South在迁移中使用事务?

fut*_*ime 1 mysql django django-south

我正在使用Django与MySQL和South,而且一切都很花哨......直到迁移出现问题.然后我收到一个错误,经常损坏或破坏我的数据库,并且沿着这条线给我:

 ! Since you have a database that does not support running
 ! schema-altering statements in transactions, we have had 
 ! to leave it in an interim state between migrations.
Run Code Online (Sandbox Code Playgroud)

我的所有数据库表都是InnoDB,据我所知,它支持事务.我需要做些什么才能让South将交易用于其迁移?

Dan*_*man 5

错误消息的要点是MySQL 在您更改模式时支持事务.MySQL仅在您创建/更新/选择数据时支持事务.请仔细阅读South网站上"数据库特定问题"部分中有关MySQL的内容.

如果您确实想使用模型迁移,可以切换到PostgreSQL,这对Django来说是完全透明的.唯一的变化是settings.py数据库部分(当然还有PostgreSQL安装).