我有一个PostgreSQL数据库,我需要首先用预定的id来填充并使用种子数据,然后当我向数据库创建新条目时,我希望id自动增加。当我使用SQLite数据库时,这很简单。但是,当我尝试在PostgreSQL DB上使用相同的代码时,我发现Sequelize创建的ID从零开始,并忽略了种子创建的索引,导致唯一约束错误。
我想这是因为PostgreSQL使用单独的序列来跟踪增量。我的下一步方法是使用Sequelize的原始查询来更改序列。但是,当我尝试运行更改序列查询时,Sequelize无法找到序列。我运行:
但是一个错误被生成并在错误信息中声明 "Unhandled rejection SequelizeDatabaseError: relation "compound_cpcd_seq" does not exist"。这是否是大小写字母的问题,因为COMPOUND_CPCD_seq不等于compound_cpcd.seq?如果是这样,如何解决这个问题(因为我无法控制COMPOUND_CPCD_seq的创建方式)?
我错过了什么?
模型:
我想这是因为PostgreSQL使用单独的序列来跟踪增量。我的下一步方法是使用Sequelize的原始查询来更改序列。但是,当我尝试运行更改序列查询时,Sequelize无法找到序列。我运行:
db.query("ALTER SEQUENCE COMPOUND_CPCD_seq RESTART WITH 100;");
但是一个错误被生成并在错误信息中声明 "Unhandled rejection SequelizeDatabaseError: relation "compound_cpcd_seq" does not exist"。这是否是大小写字母的问题,因为COMPOUND_CPCD_seq不等于compound_cpcd.seq?如果是这样,如何解决这个问题(因为我无法控制COMPOUND_CPCD_seq的创建方式)?
我错过了什么?
模型:
const COMPOUND= db.define('COMPOUND', {
CPCD: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
unique: true,
},
Name: {
type: Sequelize.STRING,
}
})