【发布时间】:2017-02-10 10:17:47
【问题描述】:
我正在使用 knex 在 postgres 数据库中创建一个简单的表:
function up(knex, Promise) {
return knex.schema.createTableIfNotExists('communities', (table) => {
table.increments('id').primary().unsigned();
table.string('name', 255).notNullable();
table.string('slug', 100).notNullable();
table.timestamp('createdAt').defaultTo( knex.fn.now() );
table.timestamp('updatedAt');
});
};
function down(knex, Promise) {
return knex.schema.dropTableIfExists(tableName);
};
module.exports = {
tableName,
up,
down
}
我的问题是table.increments('id').primary() 创建了一个默认值具有nextval('communities_id_seq'::regclass) 的主键,并且我无法在没有id 的情况下进行插入(即使在原始sql 中)。
有谁知道如何让id默认递增?
【问题讨论】:
-
你可能应该使用
serial,而不是unsigned。
标签: node.js postgresql knex.js