node.js - Sequelize.sync({force: true}) 保留过时的模型架构
问题描述
我的 nodejs/sequelizejs (5.7.6)/postgres (11.2) 应用程序有一个最近更新如下的 socketlist 模型:
const SocketList = db.define('socketlist', {
user_ids: {type: Sql.ARRAY(Sql.INTEGER),
},
fort_token: {
type: Sql.STRING
},
server_id: {type: Sql.STRING
},
}, {
timestamps: false,
indexes: [
{
fields: ['fort_token']
},
{
fields: ['server_id']
},
]
});
我正在使用sync
创建数据库表:
db.sync({force:true})
.then((res) => {
console.log("db done!");
console.log(res);
}); //create db
问题是socketlist
创建的表仍然基于已经更新的旧模式,我不知道sync
缓存过时的模式代码的位置。我试图删除整个数据库或表,但结果总是相同的 - 旧的和过时的模式。到目前为止,sync
它一直运行良好。这是一个错误sequelizejs
吗?代码有什么问题?
也findOne()
使用过时的模式,如控制台输出所示:
Socketio server is initialized
Executing (default): SELECT "id", "user_id", "socket_id", "event_id", "server_id", "active" FROM "socketlists" AS "socketlist" WHERE "socketlist"."fort_token" = '12345678901234567890' LIMIT 1;
我删除并重新安装了sequelize
,问题仍然存在。
这是数据库连接:
const Sql = require("sequelize");
const db = new Sql('myDB', 'postgres', `${process.env.DB_PASSWORD}`, {
host: 'localhost',
dialect: 'postgres',
port:5433,
} );
这是旧的(过时的)SocketList 模式:
const Sql = require("sequelize");
//const Op = Sql.Op;
const db = require("../startup/db");
const Joi = require('joi');
const SocketList = db.define('socketlist', {
id: {type: Sql.INTEGER,
primaryKey:true,
autoIncrement: true,
min: 1
},
socket_id: {type: Sql.STRING,
min: 1
},
event_id: {type: Sql.INTEGER,
min: 1
},
server_id: {type: Sql.STRING
},
active: {type: Sql.BOOLEAN,
defaultValue: true,
},
}, {
timestamps: false
}, {
indexes: [
{
//socket_id
fields: ['socket_id']
},
{
fields: ['active']
},
{
fields: ['server_id']
},
{
fields: ['event_id']
},
]
});
module.exports.SocketList = SocketList;
解决方案
推荐阅读
- ruby-on-rails - 单独跟踪新记录和更新记录的计数
- elasticsearch - 如何使用 logstash 配置在日志文件中检索 n 行前后行?
- ldap - 如何获取密码策略 - freeradius - ldap
- r - 基于左表和右表中具有不同名称的列进行合并
- r - 如何在火车集中重复少数类的行?
- javascript - undefined 不是对象(评估'_this2.props.navigation.navigate')onPress React-Native
- c# - DocuSign:升级到 3.1.1.0 后的 DocuSign.eSign.dll 停止为 ApiClient.GetUserInfo 工作
- python - 忽略文件夹的特定 flake8 规则
- ruby-on-rails - 如何在 searchkick 中排除记录?
- java - 构建 aws athena 项目时 log4j 出现错误