Esses dias quebrei a cabeça tentando fazer uma migração simples com o Django South no meu banco de dados MySQL e me deparei com o erro:
“_mysql_exceptions.Warning: InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_per_table”
Depois de procurar bastante no google encontrei algumas soluções aqui e outras e ali e cheguei nesse passo a passo abaixo que funcionou para mim:
Adicione a linha innodb_file_per_table=ON em /etc/mysql/my.cnf
Reinicie o mysql:
1 2 |
$ sudo /etc/init.d/mysql stop $ sudo /etc/init.d/mysql start |
Entre no mysql digitando:
1 |
mysql-u seuusuario -p suasenha |
e digite:
1 2 |
SET GLOBAL innodb_file_per_table=ON; SET GLOBAL innodb_file_format=Barracuda; |
Agora rode sua migração South novamente e tudo deve funcionar normalmente.
Aqui segue uma explicação mais especifica para o porque dessa mudança:
http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html#sysvar_innodb_file_per_table
http://www.percona.com/blog/2014/01/14/innodb-file-formats-here-is-one-pitfall-to-avoid/