2012-04-13 6 views
1

Migration Ich habe South auf meiner bestehenden Django App installiert. Diese Django App ist ebenfalls auf Heroku.Django App mit South auf Heroku kann nicht

Ohne Änderungen an den Modellen zu machen, habe ich vor Ort die folgenden Befehle durchgeführt:

  • manage.py schemamigration app_name --initial
  • manage.py migrate --fake

Dann Heroku Master zu schieben versuchte ich, und dort wandern. Aber ich bekomme Folgendes:

Ich bekomme die gleiche Nachricht, wenn ich versuche, die Heroku migrieren zu fälschen.

Ich dachte, das kann in Ordnung sein, da technisch nichts zu migrieren ist, da die db gleich bleibt.

Also machte ich eine kleine Änderung an einem der Modelle und hat die folgenden:

  • manage.py schemamigration app_name --auto
  • manage.py migrate

ich Heroku dann geschoben und dort zu wandern versucht, und ich erhalten Sie weiterhin Folgendes:

Running migrations for app_name: 
- Nothing to migrate. 
    - Loading initial data for notecards. 
No fixtures found 

Jede Hilfe bei dem, was ich falsch mache, wäre großartig. Vielen Dank.

+0

Meine Migrationsordner hat jetzt zwei Einträge 0001 (was war die init) und 0002. Das Problem trat jedoch auf, bevor ich die 2. Migration machte. –

+1

Sind Sie sicher, dass Sie die neue Migration durchgeführt haben?Überprüfen Sie den Migrationsordner auf Heroku und stellen Sie sicher, dass dort nicht bereits Migrationen ausgeführt werden. –

+0

Das brachte mich auf den richtigen Weg. Ich musste vorherige Migrationen rekursiv entfernen und dann mit den neuen Migrationen beginnen. THanks –

Antwort

-1

Für alle anderen, die auf dieses Problem stoßen, und für meine eigene Referenz. Danke an Chris Pratt, dass er mich auf die richtige Spur gebracht hat.

Lokal: Entfernen

rekursiv alle alten Migrationen git rm -r migrations

alte Datenbank Spülung (das alle Daten entfernt, aber für mich war nicht ein Problem) manage.py flush

Dies wurde durch gelöst

Migrationsordner im App-Ordner löschen

initiale Schemämigrati ausführen auf manage.py schemamigration --initial

gefälschte Lauf manage.py migrate --fake

Push Heroku Master

Auf Heroku migrieren:

heroku run python manage.py migrate app_name

Dann wandern, lokal können Sie --auto wandern laufen, drücken Sie auf Heroku, und ausführen migrieren app_name

+0

Diese Antwort scheint nicht zu funktionieren, außer fast unverständlich zu sein. – FRD

+1

Welchen Teil der Antwort verstehst du nicht? Im Wesentlichen werden die Migrationen einfach rekursiv entfernt und anschließend eine neue Migration erstellt. Es funktioniert, zumindest zum Zeitpunkt des Schreibens, aber es entfernt die Migrationen vollständig - vielleicht ist es nicht das, wonach Sie suchen. Vielleicht wäre es besser, wenn Sie Ihre eigene Frage erstellen und beantworten würden. –

+0

Ich weiß, das war eine Weile her, aber hast du jemals einen Weg gefunden, das zu bewältigen, ohne deine Datenbank zu vernichten? Nur neugierig, da ich das gleiche Problem habe und nur die lokale db, die "technisch" keine große Sache ist, aber es ist nur ein Aufwand. –

Verwandte Themen