2017-11-04 6 views
0

私のアプリケーションでMongoDBが使用されましたが、他のデータを取得するためにPostgresqlに接続する必要があります。しかし、PostgreSQLの接続とモデルを追加した後、sails liftでアプリケーションを起動したときにエラーが発生しました。私が働いてアプリケーションを比較作っSailsJS - 複数のデータベースへの接続中にエラーが発生しました:エラー: "SELEC"またはそれに近い構文エラー

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) 

すべての変更は、次のとおりです:models.js

  1. 追加connection: 'mongodb'は、デフォルトのDB接続としてMongoDBのを設定するには、次のは、全体のエラーメッセージが表示されています。
  2. Postgresqlに接続するための新しい作成モデル(ActivityController)にconnection: 'postgresdb'を追加します。

これには多くの時間がかかりました。私の調査とドキュメントの学習は、すべての設定が正常であると思われます。私は何かが欠けていたか?

誰でも手伝っていただければ幸いです。

答えて

0

最後に、根本的な原因を見つけました。ほとんど故障です。デフォルトの接続はMongoDBで、migrateの値はalterに設定されているため、この自動移行戦略を使用してPostgreSQLを使用するモデルも同様です。そのため、DBを操作しようとしています。これは実際にエラーメッセージから推測できます。

PostgreSQLに接続しているモデルにmigrate: safeを追加した後で動作しました。

以下は、SailsJSドキュメントからの自動移行戦略です。

Auto-migration strategy | Description

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 
関連する問題