como gerar um novo uuid ou md5 aleatório para salvar no postgresql, por exemplo:
Mas o 'knex.raw('uuid_generate_v4()')' não funciona, gostaria de saber como posso fazer para gerar um hash aleatório e salvar automático ao criar um novo registro?
e também parece que o uuid-v4 não pode gerar random por causa da migração que é estática e inalterada para cada solicitação.
Desculpe, estou estudando node devido ao próprio e minha única ajuda é google e github, agradeço sua ajuda.
Qual é a razão pela qual
Mas o 'knex.raw('uuid_generate_v4()')'
Não funciona? Isso funciona com o postgrsql quando você tenta usá-lo com o sql simples com o knex?
Tente também executar seu código com DEBUG= knex:* variável evironment definida para obter mais informações sobre o que está acontecendo com suas consultas.
@anzileiro , você não deve usar o pacote uuis-v4
em migrações, mas em seus modelos, por exemplo antes de salvar um novo modelo, defina sua propriedade hash
com o valor de uuid()
e então salve
Você precisa verificar se a extensão está disponível:
knex.raw('create extension if not exists "uuid-ossp"')
então você pode fazer
table.string('hash').defaultTo(knex.raw('uuid_generate_v4()'))
não se esqueça da migração down
:
knex.raw('drop extension if exists "uuid-ossp"')
Edit: Você pode usar o tipo uuid em vez de string ao usar pg, por exemplo:
await knex.schema.createTable('Users', t => {
t.uuid('id').defaultTo(knex.raw('uuid_generate_v4()'))
// ...
})
Obrigado @fl0w , caso encerrado ☺️
Obrigado rapazes!
👍
Comentários muito úteis
Você precisa verificar se a extensão está disponível:
então você pode fazer
não se esqueça da migração
down
:Edit: Você pode usar o tipo uuid em vez de string ao usar pg, por exemplo: