development

Meteor 프로젝트에서 기존 MongoDB를 어떻게 사용합니까?

big-blog 2020. 9. 18. 18:48
반응형

Meteor 프로젝트에서 기존 MongoDB를 어떻게 사용합니까?


잠시 동안 GUI 클라이언트 ( wxPython ) 용으로 실행중인 MongoDB 서버가 있다고 가정 해 보겠습니다 .

새 Meteor 프로젝트를 기존 MongoDB에 어떻게 연결할 수 있습니까?


환경 변수 MONGO_URL을 사용하십시오. 다음과 같은 것 :

export MONGO_URL=mongodb://localhost:27017/your_db

교체 your_dbmeteor또는 사용하려는을 DB 뭐든간에.


우리는 다음을 사용합니다 npm:

  • 아직없는 경우를 사용 하여 package.json파일을 만듭니다 npm init.

  • 해당 파일에 다음 줄을 입력하고 수정합니다 (의 모두 대체 <...>).

"scripts": {"meteor": "MONGO_URL=mongodb://<USER>:<PASSWORD>@<SERVER>:<PORT>/<DB> meteor"}
  • 그런 다음 시작 유성 단지로npm run meteor

에서 대니의 대답 톰 Wijsman에 대한 의견 권장 패키지를 패치 / 몽고-livedata / mongo_driver.js는 라인 (21) 더 좋은 장소는 응용 프로그램 / 유성 / run.js에, 라인 (460)이 방법은 환경 변수가 여전히 존재하는 경우에 포착됩니다 , 예를 들어 Heroku에서 Meteor를 실행할 때. 기본 하드 코딩 된 mongodb : //127.0.0.1을 MongoDB 서버의 위치로 변경하기 만하면됩니다.


db.copyDatabase를 사용하면 버그가 있고 Meteor에서 데이터를 업데이트 할 수 없다는 점에주의하여이 작업을 수행 할 수 있습니다. 참조 https://github.com/meteor/meteor/issues/61를

Meteor의 개발 버전을 사용하는 경우 Meteor 앱을 시작하고 다음을 수행하여 실행중인 MongoDB 서버에서 데이터를 전송할 수 있습니다.

mongo --port 3002

그러면 Meteor 앱의 Mongo 서버에 연결됩니다. 이제 다음과 같이 db.copyDatabase를 사용하십시오.

db.copyDatabase('myappDatabase', 'meteor', 'localhost');

그러면 localhost의 표준 포트에서 실행되는 MongoDB 서버에서 Meteor 앱 Mongo 서버로 myappDatabase 데이터베이스가 복사됩니다. Meteor 앱이 사용하는 데이터베이스 이름은 'meteor'입니다.


데이터를 Meteor MongoDB 데이터베이스에 복사하기 만하면됩니다. Meteor를 기존 데이터베이스에 연결하고 덮어 쓰는 위험을 감수 할 이유가 없습니다.

사용 mongoexport후, 개별적으로 컬렉션을 덤프 mongoimport라는 이름의 데이터베이스로 파일을 가져 meteor유성 MongoDB의 인스턴스에. Meteor MongoDB 인스턴스는 bind_address 127.0.0.1을 사용하여 포트 3002에서 실행되며 데이터 파일은 Meteor 프로젝트 하위 디렉토리에 .meteor/local/db있습니다.

MongoDB의 가져 오기 / 내보내기에 익숙하지 않은 경우 설명서를 참조하세요 .


내가 한 것은 localhost 대신 Digital ocean droplet 서버의 IP를 추가하는 것뿐이었습니다.

env: {
      ROOT_URL: 'http://yourdomain.com',
      MONGO_URL: 'mongodb://104.236.24.66:27017/meteor',
      PORT: 3002,
    },

편집 : MUP를 사용하여 유성 프로젝트 배포 : https://github.com/zodern/meteor-up

env: {
      ROOT_URL: 'https://www.example.com',
      MONGO_URL: 'mongodb://localhost/meteor',
    },

Mup은 Docker를 사용하고 2 개의 컨테이너를 "연결"하므로 동일한 VM (서버)에서 앱과 mongo를 모두 호스팅합니다. mongoDB는 보안상의 이유로 공용 IP에서 액세스 할 수 없습니다.


한 터미널 창에서 앱을 계속 실행 한 다음 다른 창을 열고 "meteor mongo"를 입력해야 작동합니다!

참고 URL : https://stackoverflow.com/questions/10588038/how-do-i-use-an-existing-mongodb-in-a-meteor-project

반응형