cómo generar un nuevo uuid o md5 aleatorio para guardar en postgresql, por ejemplo:
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.
Lo siento, estoy estudiando nodo por mi cuenta y mi única ayuda es google y github, les agradezco su ayuda.
¿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!
👍
Comentario más útil
Debe asegurarse de que la extensión esté disponible:
entonces puedes hacer
no olvides la migración
down
:Editar: puede usar el tipo uuid en lugar de una cadena cuando usa pg, por ejemplo: