Knex-Version: 3.10.10
Datenbank + Version: MariaDB 15.1, Distrib 10.2.8-MariaDB
Betriebssystem: Ubuntu 16
Ich habe den folgenden Schema-Builder-Code:
return knex.schema.createTable('countries', function (table) {
table.increments()
table.timestamps()
table.string('name')
table.string('code')
})
Laut dieser Zeile:
https://github.com/tgriesser/knex/blob/master/src/schema/tablebuilder.js#L174
Auf updated_at
und created_at
sollten Standardwerte (CURRENT_TIMESTAMP) angewendet werden. Aber wenn ich Werte in die Tabelle einfüge, gibt es keine Standardwerte. Der Wert ist NULL. Ich habe es mit der Beschreibung bestätigt:
MariaDB [photogferret]> describe countries;
+------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| created_at | datetime | YES | | NULL | |
| updated_at | datetime | YES | | NULL | |
| name | varchar(255) | YES | | NULL | |
| code | varchar(255) | YES | | NULL | |
+------------+------------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
Mein Fehler. Ich hätte .timestamps(true, true)
verwenden sollen. Das hat es behoben.
Danke @Jakobud! Ich hatte hier das gleiche Problem, aber jetzt kann ich "ON UPDATE CURRENT_TIMESTAMP" nicht auf das Feld updated_at
setzen. Wie hast du es gemacht?
Hilfreichster Kommentar
Mein Fehler. Ich hätte
.timestamps(true, true)
verwenden sollen. Das hat es behoben.