Knex: Fehler: .timestamps() setzt keine Standardwerte

Erstellt am 15. Dez. 2017  ·  2Kommentare  ·  Quelle: knex/knex

Umfeld

Knex-Version: 3.10.10
Datenbank + Version: MariaDB 15.1, Distrib 10.2.8-MariaDB
Betriebssystem: Ubuntu 16

Insekt

  1. Erklären Sie, welche Art von Verhalten Sie bekommen und wie Sie es Ihrer Meinung nach tun sollten

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)

Hilfreichster Kommentar

Mein Fehler. Ich hätte .timestamps(true, true) verwenden sollen. Das hat es behoben.

Alle 2 Kommentare

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?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen