Knex: UUID et MD5 générés

Créé le 12 juin 2016  ·  5Commentaires  ·  Source: knex/knex

comment générer un nouvel uuid ou md5 random pour sauvegarder sur postgresql, par exemple :

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

Mais le 'knex.raw('uuid_generate_v4()')' ne fonctionne pas, je me demande comment puis-je faire pour générer un hachage aléatoire et enregistrer automatiquement lors de la création d'un nouvel enregistrement ?

et il semble également que uuid-v4 ne puisse pas générer de random à cause de la migration qui est statique et inchangée pour chaque requête.

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

Désolé, j'étudie le nœud en raison de mon propre et ma seule aide est google et github, je vous remercie pour votre aide.

Commentaire le plus utile

Vous devez vous assurer que l'extension est disponible :

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

alors tu peux faire

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

n'oubliez pas la migration down :

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

Edit : vous pouvez utiliser le type uuid au lieu de chaîne lors de l'utilisation de pg, par exemple :

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

Tous les 5 commentaires

Quelle est la raison pour laquelle

Mais le 'knex.raw('uuid_generate_v4()')'

Ne fonctionne pas ? Cela fonctionne-t-il avec postgrsql lorsque vous essayez de l'utiliser avec sql simple sans knex?

Essayez également d'exécuter votre code avec DEBUG= knex:* ensemble de variables d'environnement pour obtenir plus d'informations sur ce qui se passe avec vos requêtes.

@anzileiro , vous ne devez pas utiliser le package uuis-v4 dans les migrations, mais dans vos modèles, par exemple avant d'enregistrer un nouveau modèle, définissez sa propriété hash sur la valeur de uuid() et puis enregistrez-le

Vous devez vous assurer que l'extension est disponible :

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

alors tu peux faire

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

n'oubliez pas la migration down :

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

Edit : vous pouvez utiliser le type uuid au lieu de chaîne lors de l'utilisation de pg, par exemple :

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

Merci @fl0w , affaire close ☺️

Merci les gars!

👍

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

npow picture npow  ·  3Commentaires

mtom55 picture mtom55  ·  3Commentaires

fsebbah picture fsebbah  ·  3Commentaires

zettam picture zettam  ·  3Commentaires

mattgrande picture mattgrande  ·  3Commentaires