【发布时间】:2022-01-06 02:23:15
【问题描述】:
我一生都无法弄清楚为什么会发生这种情况。每次我运行表删除/创建迁移然后在服务器数据库上播种逻辑时,它都会给我奇怪的 18 位 id,而不是递增 1、2、3。本地一切正常,我的数据库是免费层托管的 Cockroach 数据库。我在这里播种 3 条记录是生成的示例 id (725368665646530561,725368665646694401,725368665646727169)
编辑:
根据评论和一些额外的研究,我发现 Cockroach DB 虽然与 Postgres 兼容,但并不是真正的 Postgres DB。我也没有意识到 AUTO_INCREMENT 方法是多么不受欢迎和表现不佳。我最终使用了一个扩展来生成 UUIDS 作为 PK,然后我查询新创建的数据并在另一个种子中需要一些 FK 关系时获取这些数据。
t.uuid('id').primary().notNullable().defaultTo(knex.raw('uuid_generate_v4()'));
【问题讨论】:
标签: sql node.js knex.js cockroachdb