Es gibt eine längere SQL-Abfrage, die ich ausführen muss, um Daten von einer Tabelle zu einer anderen zu migrieren. Es funktionierte gut bis zu dieser Woche, als ich nach Django 1.9.2 und Python 3.5 migrierte.Django IntegrityError: kein Standardwert
Das Problem ist, dass die Tabelle ein Feld 'last_update' hat, das standardmäßig NULL ist. Die Tabellendefinition ist
last_update = models.DateTimeField("last updated",null=True, auto_now_add=False, auto_now=True)
ich auch mit MySQL Workbench und die Tabelle geprüft haben, ist in der Tat gesetzt NULLs auf diesem Gebiet zu ermöglichen, und der Standardwert ist NULL.
Die Abfrage stürzt nach etwa 30 Minuten mit der Fehlermeldung:
django.db.utils.IntegrityError: (1364, "Field 'last_update' doesn't have a default value")
Sehr reizend! Wie kann ich Zeilen in diese Tabelle einfügen?
pro Anfrage, hier ist die Tabellendefinition:
CREATE TABLE `google_pla_plaproducts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`product_code` varchar(55) CHARACTER SET utf8 NOT NULL,
`min_bid` decimal(20,4) NOT NULL,
`current_bid` decimal(20,4) NOT NULL,
`max_bid` decimal(20,4) NOT NULL,
`creation_date` datetime(6),
`last_update` datetime(6) DEFAULT NULL,
`status_change` datetime(6) DEFAULT NULL,
`starting_bid` decimal(20,4) NOT NULL,
`adgroup_id` int(11) NOT NULL,
`status_id` int(11) NOT NULL,
`product_price` decimal(20,4) NOT NULL,
PRIMARY KEY (`id`,`product_code`,`adgroup_id`),
KEY `google_p_adgroup_id_3b7c9d4ecddd04ba_fk_google_pla_plaadgroup_id` (`adgroup_id`),
KEY `google_pla_plaprod_status_id_2f8113a5ef0dd021_fk_globs_status_id` (`status_id`),
KEY `idx_prod_code` (`product_code`),
CONSTRAINT `google_p_adgroup_id_3b7c9d4ecddd04ba_fk_google_pla_plaadgroup_id` FOREIGN KEY (`adgroup_id`) REFERENCES `google_pla_plaadgroup` (`id`),
CONSTRAINT `google_pla_plaprod_status_id_2f8113a5ef0dd021_fk_globs_status_id` FOREIGN KEY (`status_id`) REFERENCES `globs_status` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=88949 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
Können Sie die SQL-Definition der Tabelle, die Workbench erzeugt, hinzufügen? –
Beachten Sie auch, dass die Tabelle tatsächlich null Werte für dieses Feld enthält! – dengar81
Vielleicht hinzufügen 'models.DateTimeField (default = None, ...)' – JulienD