经过研究,我似乎无法找到一种很好的方法来进行以下操作:
我不会在现有表中添加新列,该列应该是一个自动递增的整数,其值从1000开始。
我的迁移文件现在很简单而且很明显:
'use strict';
module.exports = {
up: (queryInterface, Sequelize) => {
return Promise.all([
queryInterface.addColumn(
'Orders',
'orderRef',
{
autoIncrement: true,
type: Sequelize.INTEGER
}
)
])
},
down: {...
}
};
因此这可以毫无问题地将列添加到表中。但是我似乎找不到一种很好的方法来将值设置为从1000开始并从那里开始递增。
我知道我可以运行类似ALTER TABLE Orders AUTO_INCREMENT = 1000;
的查询,但是非常感谢将其保留在Sequelize中。
我正在使用PostgreSQL数据库和Sequelize版本4.38.1。
有人知道解决此问题的好方法吗?
答案 0 :(得分:0)
它已经存在于 Sequelize 中。有一个称为initialAutoIncrement 的选项。这会为 MySQL 中的表设置初始 AUTO_INCREMENT 值。
module.exports = (sequelize, DataTypes) => {
const User = sequelize.define(
'User',
{
id: {
type: DataTypes.BIGINT(20),
primaryKey: true,
autoIncrement: true,
},
name: {
type: DataTypes.STRING(500),
allowNull: false,
},
},
{
initialAutoIncrement: 1000,
}
);
return User;
};