我的应用程序发生了一些奇怪的情况,我将 SailsJs 与官方 PostgreSQL 驱动程序一起使用,并且我的数据被删除。我没有任何删除数据的特定事件模式或列表,但我有以下观察结果。
- 几天前,我正在编写一个函数来销毁数据,当我 执行该函数时它给了我一个错误我修复了错误并运行 我的网络应用程序再次出现,哇哦,我的一张表中的数据全部消失了。
- 昨天我写了一个函数,并尝试对其进行 HTTP 调用 功能,但它给了我 500 服务器错误,我开始调试它 在执行我的程序 3 到 4 次后,出现此错误部分 数据已从我的数据库表之一中删除。后来错误是我 网址中有拼写错误。
如果你们中有人对我发生的事情有任何经验,请告诉我如何解决它?或者至少帮助我如何重现这个问题?
编辑
我激活了日志并等待它再次发生,它再次发生,这是来自 sailsjs 的日志
在日志中我看到它在谈论 alter.js 同步策略,但我选择它作为安全
策略
最佳答案
这种情况在我身上发生过很多次,当提升应用程序时,它正在对数据库进行更改,但它失败了,有时是由于 ORM 超时。
sails 在升起并需要更新数据结构时做什么,在 config/models.js migrate 中控制:'alter',通常被注释掉,你会得到一个提示,告诉你要做什么 1... 2... 3...(从我的脑海中写下来,我不记得实际的消息)以及关于在生产系统上使用 alter 的警告。
改变 config/orm.js 拥有这个
// config/orm.js
module.exports.orm = {
_hookTimeout: 60000 // I used 60 seconds as my new timeout
};
由于我不知道更改 config/pubsub.js 的原因
// config/pubsub.js
module.exports.pubsub = {
_hookTimeout: 60000 // I used 60 seconds as my new timeout
};
帮助我避免了数据丢失。
关于node.js - Sails Js 正在从 pg_database 中删除数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33874615/