Knex: 生成的 UUID 和 MD5

创建于 2016-06-12  ·  5评论  ·  资料来源: knex/knex

如何生成新的 uuid 或 md5 随机保存在 postgresql 上,例如:

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

但是 'knex.raw('uuid_generate_v4()')' 不起作用,我想知道如何在创建新记录时生成随机哈希并自动保存?

而且似乎 uuid-v4 也无法生成随机,因为迁移对于每个请求都是静态且不变的。

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

对不起,由于自己的原因我正在学习node,我唯一的帮助是google和github,谢谢你的帮助。

最有用的评论

您需要确保扩展可用:

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

那么你可以做

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

不要忘记down迁移:

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

编辑:您可以在使用 pg 时使用 uuid 类型而不是字符串,例如:

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

所有5条评论

原因是什么

但是 'knex.raw('uuid_generate_v4()')'

不工作? 当您尝试将它与普通 sql wirhout knex 一起使用时,它是否适用于 postgrsql?

还尝试使用 DEBUG= knex:* evironment变量集运行您的代码,以获取更多关于您的查询的信息。

@anzileiro ,您不应该在迁移中使用uuis-v4包,但在您的模型中,例如在保存新模型之前,将其属性hash设置为uuid()的值和然后保存

您需要确保扩展可用:

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

那么你可以做

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

不要忘记down迁移:

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

编辑:您可以在使用 pg 时使用 uuid 类型而不是字符串,例如:

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

谢谢@fl0w ,案件结束☺️

多谢你们!

👍

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

fsebbah picture fsebbah  ·  3评论

lanceschi picture lanceschi  ·  3评论

nklhrstv picture nklhrstv  ·  3评论

ghost picture ghost  ·  3评论

npow picture npow  ·  3评论