Knex: UUID e MD5 gerados

Criado em 12 jun. 2016  ·  5Comentários  ·  Fonte: knex/knex

como gerar um novo uuid ou md5 aleatório para salvar no postgresql, por exemplo:

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

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.

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

Desculpe, estou estudando node devido ao próprio e minha única ajuda é google e github, agradeço sua ajuda.

Comentários muito úteis

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()'))
  // ...
})

Todos 5 comentários

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!

👍

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

hyperh picture hyperh  ·  3Comentários

ghost picture ghost  ·  3Comentários

aj0strow picture aj0strow  ·  3Comentários

legomind picture legomind  ·  3Comentários

zettam picture zettam  ·  3Comentários