Zuerst erstelle ich meine Datenbank.
create database mydb;
Ich füge "Süd" zu installierten Apps hinzu. Dann gehe ich zu diesem Tutorial: http://south.aeracode.org/docs/tutorial/part1.html
Das Tutorial fordert mich dazu auf:
$ py manage.py schemamigration wall --initial
>>> Created 0001_initial.py. You can now apply this migration with: ./manage.py migrate wall
Großartig, jetzt migriere ich.
$ py manage.py migrate wall
Aber es gibt mir diesen Fehler ...
django.db.utils.DatabaseError: (1146, "Table 'fable.south_migrationhistory' doesn't exist")
Ich verwende also Google (was nie funktioniert. Daher meine 870 Fragen zu Stackoverflow) und erhalte die folgende Seite: http://groups.google.com/group/south-users/browse_thread/thread/d4c83f821dd2ca1c
Okay, also folge ich diesen Anweisungen
>> Drop database mydb;
>> Create database mydb;
$ rm -rf ./wall/migrations
$ py manage.py syncdb
Aber wenn ich syncdb ausführe, erstellt Django eine Reihe von Tabellen. Ja, es wird die Tabelle "south_migrationhistory" erstellt, aber es werden auch die Tabellen meiner App erstellt.
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)
Cool .... jetzt sagt es mir, diese zu migrieren. Also mache ich das:
$ py manage.py migrate wall
The app 'wall' does not appear to use migrations.
Okay, so gut. Ich werde den ersten Migrationen eine Wand hinzufügen.
$ py manage.py schemamigration wall --initial
Dann migriere ich:
$ py manage.py migrate wall
Weißt du was? Es gibt mir diese BS:
_mysql_exceptions.OperationalError: (1050, "Table 'wall_content' already exists")
Entschuldigung, das macht mich wirklich wütend. Kann jemand helfen? Vielen Dank.
Wie bringe ich South dazu, zu arbeiten und mit allem richtig zu synchronisieren? Ich kann mir nur vorstellen, meine App aus INSTALLED_APPS zu entfernen, dann syncdb auszuführen und wieder hinzuzufügen.
Das ist so albern.