On 2013-08-01, at 10:09 , Nigel Legg wrote:
> I tried to run a migration using south, and got the message:
> "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."
> Is this an incompatibility with MySQL, or because my DB is incorrectly
> configured? I have not seen in any of the South documentation that it can
> not be used with MySQL.
> Cheers, N//
Please read the message. It doesn't note that South is *incompatible*
with mysql, it notes that a failed migration will leave the database in
an intermediate (broken) state.
This is because MySQL does not implement transactional DDL[0]: table
alterations are performed outside of transactions and thus can not be
rollbacked (and will implicitly commit any pending transaction when
using InnoDB). This by comparison to PostgreSQL, where pretty much all
commands (including DDL) are executed in transaction and will be
rollbacked with it (a quick search notes database and tablespace
alterations are not transactional, 2-phase transactions obviously aren't
either, and sequence operations don't rollback for different reasons).
[0] http://wiki.postgresql.org/wiki/Transactional_DDL_in_PostgreSQL:_A_Competitive_Analysis#MySQL
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
For more options, visit https://groups.google.com/groups/opt_out.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment