2017-11-04 17 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