2010-12-15 5 views
0

Ich bin kein Django-Experte, aber von dem, was ich sammeln kann, gibt es keine Möglichkeit, syndb nicht zu sagen, versuchen, ALTER-Anweisungen auszuführen, um Fremdschlüsseleinschränkungen für die Datenbank zu erstellen.Ist es möglich, Djangos syndb-Befehl NICHT versuchen, tatsächliche Fremdschlüssel in der Datenbank zu erstellen?

Ich habe kürzlich versucht, meine MySQL Cluster Installation von 7.0.6 auf die neueste Version 7.1.9a zu aktualisieren. Dies enthüllte einen Fehler in dieser neuesten MySQL-Version, in der Fremdschlüsselkonstrukte NICHT bei Engines ignoriert werden, die sie nicht wie in früheren Versionen unterstützen. Dies ist definitiv ein MySQL-Fehler, den ich ihnen übermittelt habe und den sie als gültig bestätigt haben.

In der Zwischenzeit, bis dieser Bug behoben ist, bin ich stecken eine sehr alte Version von MySQL und fragte mich, ob ich möglicherweise umgehen könnte, indem Sie irgendwie syncdb zwingen, nicht versuchen, tatsächlich Fremdschlüssel zu erstellen die Datenbank, einfach die Tabellen erstellen.

Ohne ins Detail zu gehen, ist in meinem Fall der syncdb-Befehl in eine Automatisierung eingebaut, die viel mehr als nur eine Datenbank aus Modellen erstellt, so dass ich nicht sehr einfach manuell damit umgehen kann.

Alle Eingaben oder Ideen sind willkommen.

+1

Warum nicht einfach eine Tabellen-Engine verwenden, die sie unterstützt? –

Antwort

0

Süd kann dies tun (http://south.aeracode.org/)

Sie ein schemamigration tun könnte und dann die Migration von Hand bearbeiten, konstruiert die FK Weglassen. Sie könnten auch Ihre eigenen Introspektionsregeln in South machen, die das automatisieren, denke ich. Es könnte jedoch die Synchronisierung mit syncdb beeinträchtigen.

0

Sie können Python manage.py sqlall app_name ausführen, die ALTER FK-Einschränkungen entfernen und SQL manuell laden.

Verwandte Themen