잠시 동안 GUI 클라이언트 ( wxPython ) 용으로 실행중인 MongoDB 서버가 있다고 가정 해 보겠습니다 .
새 Meteor 프로젝트를 기존 MongoDB에 어떻게 연결할 수 있습니까?
잠시 동안 GUI 클라이언트 ( wxPython ) 용으로 실행중인 MongoDB 서버가 있다고 가정 해 보겠습니다 .
새 Meteor 프로젝트를 기존 MongoDB에 어떻게 연결할 수 있습니까?
답변:
환경 변수 MONGO_URL을 사용하십시오. 다음과 같은 것 :
export MONGO_URL=mongodb://localhost:27017/your_db
교체 your_db
로 meteor
또는 사용하려는을 DB 뭐든간에.
export MONGO_URL=mongodb://localhost:27017/my_database_name
은라는 데이터베이스에 데이터를 저장합니다 my_database_name
. 그는 당신이 원한다면 할 수 있다는 것을 의미했습니다 export MONGO_URL=mongodb://localhost:27017/meteor
. 프로젝트와 동일한 데이터베이스 이름을 지정하는 것이 좋습니다.
우리는 다음을 사용합니다 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의 가져 오기 / 내보내기에 익숙하지 않은 경우 설명서를 참조하세요 .
app/lib/mongo_runner.js
실행 방법을 결정합니다 (실행 코드가 필요하지 않을 수도 있으므로 비활성화하는 방법을 살펴보십시오). 연결은 내부 packages/mongo-livedata/mongo_driver.js
에서 발생하는 것 같습니다 . 21 행에서 url 매개 변수를 간단히 변경할 수 있다고 생각합니다. 값을 알고 싶다면 그 console.log(url);
앞에있는 행에 삽입 하고 Meteor를 다시 시작하고 Meteor 출력을 자세히 살펴보십시오. 만들기는 확실히 당신은 참 ... 트리거에 대한 앱에서 유성을 한 번 부르지
console.log(url);
하고 정보를 얻었다! 나는 이것이 커뮤니티에 도움을 제공한다고 믿거 나 적어도 아직 유성에 익숙하지 않은 사람들에게 도움을 제공한다고 믿기 때문에 이것을 해결 방법으로 완벽하게 만들 것을 제안 할 것입니다 ~
내가 한 것은 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"를 입력해야 작동합니다!