gpt4 book ai didi

knex.js - 如何在 Knex 迁移中设置默认值?

转载 作者:行者123 更新时间:2023-12-04 16:04:00 27 4
gpt4 key购买 nike

我想为 Knex 迁移中的主键设置默认值,但我遇到了问题。这是我最初的迁移:

exports.up = (knex, Promise) => {
return knex.schema.createTable(
'users',
(table) => {
table.uuid('id').primary();
table.string('email');
}
);
};

我想默认 id字段为随机 UUID。所以这是我的下一次迁移:
exports.up = (knex, Promise) => {
return Promise.all([
knex.raw('create extension if not exists "uuid-ossp"'),
knex.schema.alterTable('users', (table) => {
table.uuid('id')
.defaultTo(knex.raw('uuid_generate_v4()'))
.alter();
}),
]);
};

当我运行时,我收到以下错误:
migration failed with error: alter table "users" alter column "id" drop not null - column "id" is in a primary key

基于此,看起来 Knex 正试图放弃 NOT NULL约束。我尝试链接一个 .notNullable()之前 .defaultTo()它仍然给出相同的错误。有什么我做错了吗?

最佳答案

您需要删除主键,更改列,然后重新创建它。

关于knex.js - 如何在 Knex 迁移中设置默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54664384/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com