0

我在我的应用程序中使用了 MongoDB,现在我需要连接到 Postgresql 以获取其他一些数据。但是在我为 Postgresql 添加连接和模型后,当我使用sails lift. 以下是整个错误消息:

error: A hook (`orm`) failed to load!
error: Error (E_UNKNOWN) :: Encountered an unexpected error
error: syntax error at or near "SELEC"
  at Connection.parseE (/Users/xx/Documents/xx/Code/services/node_modules/sails-postgresql/node_modules/pg/lib/connection.js:539:11)
  at Connection.parseMessage (/Users/xx/Documents/xx/Code/services/node_modules/sails-postgresql/node_modules/pg/lib/connection.js:366:17)
  at Socket.<anonymous> (/Users/xx/Documents/xx/Code/services/node_modules/sails-postgresql/node_modules/pg/lib/connection.js:105:22)
  at emitOne (events.js:96:13)
  at Socket.emit (events.js:188:7)
  at readableAddChunk (_stream_readable.js:172:18)
  at Socket.Readable.push (_stream_readable.js:130:10)
  at TCP.onread (net.js:535:20)

我在比较工作应用程序时所做的所有更改是:

  1. 添加connection: 'mongodb'models.js将 MongoDB 设置为默认数据库连接。
  2. 添加connection: 'postgresdb'我新创建的模型(ActivityController)以连接到 Postgresql。

我花了很多时间来解决这个问题。正如我对文档的调查和学习,似乎所有配置都可以。我错过了什么吗?

如果有人可以提供帮助,我将不胜感激。

4

1 回答 1

0

最后,我找到了根本原因,几乎崩溃了。因为默认连接是 MongoDB,并且 的值migrate设置为alter,所以使用 PostgreSQL 的模型使用这种自动迁移策略。这就是它试图操纵数据库的原因,这实际上可以从错误消息中推断出来。

所以在我添加migrate: safe到连接到 PostgreSQL 的模型后它就起作用了。

以下是 SailsJS 文档中的自动迁移策略。

自动迁移策略 | 描述

safe                 | never auto-migrate my database(s). I will do it myself, by hand.

alter                | auto-migrate columns/fields, but attempt to keep my existing data (experimental)

drop                 | wipe/drop ALL my data and rebuild models every time I lift Sails
于 2017-11-04T13:58:37.780 回答