经过一些研究,我似乎无法找到执行以下操作的好方法:
我不想向现有表添加新列,该列应该是一个自动递增整数,从值 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。
有谁知道解决这个问题的好方法?
它已经存在于 Sequelize 中。有一个名为“initialAutoIncrement”的选项。这会设置 MySQL 中表的初始 AUTO_INCRMENT 值。
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;
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)