Es scheint, als wäre der Standardwert für Spalten nur auf der ORM-Ebene und legt keinen Standardwert in der Datenbank fest. Zur gleichen Zeit hat der ID-Schlüssel zum Beispiel einen Standard-Modifikator in der Datenbank, der mir sagt, dass es möglich ist, das zu tun, aber nicht sicher, wie?Wie Standard Spaltenwert in der Datenbank mit Django 1.7.3/Postgres Migrationen setzen?
Beispielcode:
class Host(models.Model):
name = models.CharField(max_length=255, null=False)
created_at = models.DateTimeField(default=datetime.now, blank=True)
erstellt die folgende Tabelle:
Column | Type | Modifiers
------------+--------------------------+-------------------------------------------------------------
id | integer | not null default nextval('myapp_host_id_seq'::regclass)
name | character varying(255) | not null
created_at | timestamp with time zone | not null
Gibt es eine Möglichkeit, die Migration zu haben, setzen default current_timestamp
in den created_at
Modifikatoren? Wenn nicht, gibt es eine Möglichkeit, SQL-Migrationen zu übertragen? Ich brauche es, weil die Datenbank von anderen Prozessen (z. B. Batch-Prozessen) verwendet wird, die nicht auf der Anwendungsschicht Dinge wie Standardwerte erzwingen wollen.
Gehen Sie zu versuchen, anwenden Methode in 'models.Migration' und lassen Sie es raw sql ausführen. – Isaac