Por que minhas migrações para o sul não funcionam?
Primeiro, eu crio meu banco de dados.
create database mydb;
Eu adiciono "sul" aos aplicativos instalados. Então, eu vou para este tutorial:http://south.aeracode.org/docs/tutorial/part1.html
O tutorial me diz para fazer isso:
$ py manage.py schemamigration wall --initial
>>> Created 0001_initial.py. You can now apply this migration with: ./manage.py migrate wall
Ótimo, agora eu migro.
$ py manage.py migrate wall
Mas isso me dá esse erro ...
django.db.utils.DatabaseError: (1146, "Table 'fable.south_migrationhistory' doesn't exist")
Então, eu uso o Google (que nunca funciona. Portanto, minhas 870 perguntas feitas no Stackoverflow) e recebo esta página:http://groups.google.com/group/south-users/browse_thread/thread/d4c83f821dd2ca1c
Tudo bem, então eu sigo essas instruções
>> Drop database mydb;
>> Create database mydb;
$ rm -rf ./wall/migrations
$ py manage.py syncdb
Mas quando executo o syncdb, o Django cria um monte de tabelas. Sim, ele cria a tabela south_migrationhistory, masEle também cria as tabelas do meu aplicativo.
Synced:
> django.contrib.admin
> django.contrib.auth
> django.contrib.contenttypes
> django.contrib.sessions
> django.contrib.sites
> django.contrib.messages
> south
> fable.notification
> pagination
> timezones
> fable.wall
> mediasync
> staticfiles
> debug_toolbar
Not synced (use migrations):
-
(use ./manage.py migrate to migrate these)
Legal .... agora me diz para migrar estes. Então, eu faço isso:
$ py manage.py migrate wall
The app 'wall' does not appear to use migrations.
Tudo bem, tudo bem. Vou adicionar parede às migrações iniciais.
$ py manage.py schemamigration wall --initial
Então eu migro:
$ py manage.py migrate wall
Você sabe o que? Isso me dá esse BS:
_mysql_exceptions.OperationalError: (1050, "Table 'wall_content' already exists")
Desculpe, isso está realmente me irritando. Alguém pode ajudar? obrigado.
Como faço para o sul funcionar e sincronizar corretamente com tudo? A única coisa em que consigo pensar é remover meu aplicativo de INSTALLED_APPS, executar o syncdb e adicioná-lo novamente.
Isso é Tolo.