node.js - 在 Sequelize 中添加具有起始值的自动递增整数
问题描述
经过一些研究,我似乎无法找到一种很好的方法来执行以下操作:
我不想在现有表中添加一个新列,它应该是一个自动递增的整数,从值 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_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;
};
推荐阅读
- java - 为什么排序操作将遇到顺序强加给流?
- wordpress - 如何创建一个显示我的供应商主页 URL 而不是我的网站的 URL 框架?
- perl - Perl:是否可以撤消 SIG{INT} 捕获?
- reactjs - React App 的 Favicon 在 Firefox 中不会改变,但是 Chrome 可以工作
- html - 循环这个以显示所有值,而不是只显示最后一个(邮政编码)
- python - 枕头图像不透明
- delphi - 如何使用 TClientDataSet 定位包含的字符串
- android - Android ScrollView:如何使用约束布局创建带有静态页眉和页脚的滚动视图
- ruby-on-rails - 如何使用rspec测试rails中的缓存过期?
- jenkins - jq: select 未被识别为内部或外部命令