Knex: UUID y MD5 generados

Creado en 12 jun. 2016  ·  5Comentarios  ·  Fuente: knex/knex

cómo generar un nuevo uuid o md5 aleatorio para guardar en postgresql, por ejemplo:

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

Pero el 'knex.raw('uuid_generate_v4()')' no funciona, me pregunto como puedo hacer para generar un hash aleatorio y guardar automatico al crear un nuevo registro?

y también parece que uuid-v4 no puede generar aleatorio debido a la migración estática y sin cambios para cada solicitud.

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

Lo siento, estoy estudiando nodo por mi cuenta y mi única ayuda es google y github, les agradezco su ayuda.

Comentario más útil

Debe asegurarse de que la extensión esté disponible:

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

entonces puedes hacer

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

no olvides la migración down :

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

Editar: puede usar el tipo uuid en lugar de una cadena cuando usa pg, por ejemplo:

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

Todos 5 comentarios

¿Cuál es la razón por la cual

Pero el 'knex.raw('uuid_generate_v4()')'

¿No funciona? ¿Funciona eso con postgrsql cuando intentas usarlo con sql simple sin knex?

Intente también ejecutar su código con DEBUG= knex:* conjunto de variables de entorno para obtener más información sobre lo que sucede con sus consultas.

@anzileiro , no debe usar el paquete uuis-v4 en las migraciones, pero en sus modelos, por ejemplo, antes de guardar un nuevo modelo, establezca su propiedad hash en el valor de uuid() y entonces guárdalo

Debe asegurarse de que la extensión esté disponible:

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

entonces puedes hacer

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

no olvides la migración down :

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

Editar: puede usar el tipo uuid en lugar de una cadena cuando usa pg, por ejemplo:

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

Gracias @fl0w , caso cerrado ☺️

¡Gracias chicos!

👍

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

aj0strow picture aj0strow  ·  3Comentarios

marianomerlo picture marianomerlo  ·  3Comentarios

koskimas picture koskimas  ·  3Comentarios

tjwebb picture tjwebb  ·  3Comentarios

mtom55 picture mtom55  ·  3Comentarios