如何生成新的 uuid 或 md5 随机保存在 postgresql 上,例如:
但是 'knex.raw('uuid_generate_v4()')' 不起作用,我想知道如何在创建新记录时生成随机哈希并自动保存?
而且似乎 uuid-v4 也无法生成随机,因为迁移对于每个请求都是静态且不变的。
对不起,由于自己的原因我正在学习node,我唯一的帮助是google和github,谢谢你的帮助。
原因是什么
但是 '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 ,案件结束☺️
多谢你们!
👍
最有用的评论
您需要确保扩展可用:
那么你可以做
不要忘记
down
迁移:编辑:您可以在使用 pg 时使用 uuid 类型而不是字符串,例如: