Erstellen meiner Tabellen von meinem models.py
. Ich kann nicht 2 Dinge tun -
MySQL
angeben, um einige meiner Tabellen als InnoDB
& amp; einige als MyISAM
. Wie mache ich das? DEFAULT CHARSET
als utf8
angeben. Wie mache ich das? Das sehe ich, wenn ich syncdb
-
Ich benutze Ubuntu 10.04, Django 1.2.X, MySQL 5.1.X
UPDATE :
Ich dachte, dies könnten MySQL-Standardeinstellungen sein & amp; Am Ende habe ich my.cnf
geändert, wo ich default-character-set = utf8
hinzugefügt habe. Aber nutzlos.
Ich glaube nicht, dass Sie Storage-Engines Tabellen für Tabellen ändern können, aber Sie können dies Datenbank für Datenbank tun. Dies bedeutet natürlich, dass InnoDB-Fremdschlüsseleinschränkungen beispielsweise nicht auf Fremdschlüssel für MyISAM-Tabellen angewendet werden können.
Sie müssen also zwei "Datenbanken" deklarieren, die sich sehr gut auf demselben Server befinden können:
%Vor% Und Sie müssen using('innodb')
nur auf Abfragegruppen für Tabellen in InnoDB-Land anwenden.
Wie für UTF-8, denke ich, dass Sie dies auf Datenbankebene tun müssen. Ich glaube nicht, dass syncdb
die Datenbank für Sie erstellt, nur die Tabellen. Sie sollten die Datenbank trotzdem manuell erstellen, damit Sie die Rechte festlegen können, bevor Sie syncdb
ausführen. Der gewünschte Datenbankerstellungsbefehl lautet:
Das heißt, ich empfehle normalerweise, dass man zwei django-Benutzer in der Datenbank erstellt: einen für die Datenbankschemaarbeit ("admin") und einen für alles andere (mit verschiedenen Passwörtern):
%Vor%(Beachten Sie, dass dies für jede Datenbank durchgeführt werden muss.)
Damit dies funktioniert, müssen Sie manage.py
:
Verwenden Sie in Ihrem settings.py
die Umgebungsvariable, um die richtigen Einstellungen auszuwählen. Stellen Sie sicher, dass der Site-Benutzer (d. H. Nicht-Administrator) der Standardwert ist.
(Ich speichere auch nicht das Datenbank-Setup, SECRET_KEY
oder irgendwas anderes in settings.py
, weil mein Django-Projekt in Mercurial gespeichert ist; ich habe settings.py
, das alles aus einer externen Datei bezieht nur von Djangos Benutzer und den Server-Admins. Ich werde das "Wie" als Übung für den Leser belassen ... weil ich einige davon in Antworten auf die Fragen anderer dargelegt habe, und ich bin zu faul, um es richtig nachzuschlagen jetzt.)
Tags und Links django mysql character-encoding storage-engines django-models