2

我的应用程序发生了一些奇怪的事情,我正在使用带有官方 PostgreSQL 驱动程序的 SailsJs,并且我的数据被删除了。我没有删除数据的任何模式或特定事件列表,但我有以下观察结果。

  • 几天前,我正在编写一个销毁数据的函数,当我执行该函数时,它给了我一个错误,我修复了该错误并再次运行我的 Web 应用程序,而我的一张表中的数据全部消失了。
  • 昨天我写了一个函数,我试图获得对该函数的 HTTP 调用,但它给了我 500 个服务器错误,我开始调试它,在执行我的程序 3 到 4 次后出现此错误,部分数据已从我的一个数据库中删除桌子。后来的错误是我在 URL 中有错字。

如果你们中的任何人对我发生的事情有任何经验,请告诉我如何解决它?或者至少帮助我如何重现这个问题?

编辑

我激活了日志并等待它再次发生,它再次发生,这是来自sailsjs的日志

在此处输入图像描述

在此处输入图像描述

在日志中,我看到它在谈论 alter.js 同步策略,但我选择它作为safe策略

在此处输入图像描述

4

1 回答 1

0

它发生在我身上很多次,当提升应用程序时,它正在对数据库进行更改并且失败,有时是由于 ORM 超时。

在 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
};

帮助了我,避免数据丢失。

于 2015-11-28T18:27:08.383 回答