Knex: UUID und MD5 generiert

Erstellt am 12. Juni 2016  ·  5Kommentare  ·  Quelle: knex/knex

So generieren Sie eine neue uuid oder md5 zufällig, um auf postgresql zu speichern, zum Beispiel:

screen shot 2016-06-12 at 5 10 36 pm

Aber die 'knex.raw('uuid_generate_v4()')' funktioniert nicht, ich frage mich, wie ich einen zufälligen Hash generieren und beim Erstellen eines neuen Datensatzes automatisch speichern kann?

und es scheint auch, dass uuid-v4 aufgrund der Migration, die für jede Anforderung statisch und unverändert ist, keinen Zufall generieren kann.

screen shot 2016-06-12 at 5 23 16 pm

Tut mir leid, ich studiere Knoten aufgrund eigener und meine einzige Hilfe ist Google und Github, ich danke Ihnen für Ihre Hilfe.

Hilfreichster Kommentar

Sie müssen sicherstellen, dass die Erweiterung verfügbar ist:

knex.raw('create extension if not exists "uuid-ossp"')

dann kannst du das machen

table.string('hash').defaultTo(knex.raw('uuid_generate_v4()'))

down Migration nicht vergessen:

knex.raw('drop extension if exists "uuid-ossp"')

Bearbeiten: Sie können den uuid-Typ anstelle der Zeichenfolge verwenden, wenn Sie pg verwenden, z. B.:

await knex.schema.createTable('Users', t => {
  t.uuid('id').defaultTo(knex.raw('uuid_generate_v4()'))
  // ...
})

Alle 5 Kommentare

Was ist der Grund dafür

Aber die 'knex.raw('uuid_generate_v4()')'

Funktioniert nicht? Funktioniert das mit Postgrsql, wenn Sie versuchen, es mit normalem SQL ohne Knex zu verwenden?

Versuchen Sie auch, Ihren Code mit dem Umgebungsvariablensatz DEBUG= knex:* auszuführen, um mehr Informationen darüber zu erhalten, was mit Ihren Abfragen los ist.

@anzileiro , Sie sollten das Paket uuis-v4 nicht in Migrationen verwenden, aber in Ihren Modellen, zum Beispiel vor dem Speichern eines neuen Modells, dessen Eigenschaft hash auf den Wert von uuid() setzen und dann speichern

Sie müssen sicherstellen, dass die Erweiterung verfügbar ist:

knex.raw('create extension if not exists "uuid-ossp"')

dann kannst du das machen

table.string('hash').defaultTo(knex.raw('uuid_generate_v4()'))

down Migration nicht vergessen:

knex.raw('drop extension if exists "uuid-ossp"')

Bearbeiten: Sie können den uuid-Typ anstelle der Zeichenfolge verwenden, wenn Sie pg verwenden, z. B.:

await knex.schema.createTable('Users', t => {
  t.uuid('id').defaultTo(knex.raw('uuid_generate_v4()'))
  // ...
})

Danke @fl0w , Fall geschlossen ☺️

Danke Leute!

👍

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

sandrocsimas picture sandrocsimas  ·  3Kommentare

saurabhghewari picture saurabhghewari  ·  3Kommentare

nklhrstv picture nklhrstv  ·  3Kommentare

mattgrande picture mattgrande  ·  3Kommentare

fsebbah picture fsebbah  ·  3Kommentare