Допустим, есть работающий сервер MongoDB для клиента с графическим интерфейсом (от wxPython ) на некоторое время.
Как я могу подключить мой новый проект Meteor к моей уже существующей MongoDB ?
Допустим, есть работающий сервер MongoDB для клиента с графическим интерфейсом (от wxPython ) на некоторое время.
Как я могу подключить мой новый проект 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
В комментариях к ответу Дэнни Том Вийсман рекомендует исправлять пакеты / mongo-liveata / mongo_driver.js, строка 21. Лучшее место находится в app / meteor / run.js, строка 460. Таким образом, переменная окружения по-прежнему выбирается, если она есть. , например, при запуске Meteor на Heroku. Просто измените жестко заданный по умолчанию mongodb: //127.0.0.1 на местоположение вашего сервера MongoDB.
Для этого вы можете использовать db.copyDatabase, но с оговоркой, что есть ошибка и вы не можете обновить данные в Meteor. См. Https://github.com/meteor/meteor/issues/61
Если вы используете разрабатываемую версию Meteor, вы можете передавать данные с работающего сервера MongoDB, запустив приложение Meteor, а затем выполнив:
mongo --port 3002
Это подключит вас к серверу Mongo приложения Meteor. Теперь используйте db.copyDatabase следующим образом:
db.copyDatabase('myappDatabase', 'meteor', 'localhost');
Это скопирует базу данных myappDatabase с сервера MongoDB, работающего на стандартном порте на localhost, на сервер Mongo приложения Meteor. Приложение Meteor использует имя базы данных «метеор».
Просто скопируйте данные в базу данных Meteor MongoDB - нет причин пытаться подключить Meteor к существующей базе данных и рисковать перезаписать данные.
Используйте mongoexport
для сброса ваших коллекций по отдельности, а затем mongoimport
для импорта файлов в базу данных, meteor
указанную в экземпляре Meteor MongoDB. Экземпляр Meteor MongoDB работает на порту 3002 с bind_address 127.0.0.1, а файлы данных находятся в подкаталоге проекта Meteor .meteor/local/db
.
См. Документацию, если вы не знакомы с импортом / экспортом в MongoDB.
app/lib/mongo_runner.js
решает, как его запустить (возможно, вам даже не потребуется запускать код, поэтому узнайте, как его отключить). Соединение с ним, кажется, происходит внутри packages/mongo-livedata/mongo_driver.js
, я думаю, вы можете просто изменить параметр url в строке 21. Если вы хотите узнать его значение, вставьте console.log(url);
в строку перед этим, перезапустите Meteor и внимательно следите за выходом Meteor. Убедитесь, что вы действительно один раз вызываете Meteor в своем приложении, чтобы оно
console.log(url);
и получил информацию! Я предлагаю вам сделать это настолько полным, как обходной ответ, потому что я считаю, что он действительно помогает сообществу или, по крайней мере, людям вроде меня, еще не знакомым с метеором ~
Все, что я сделал, это добавил IP моего сервера Digital Ocean Droplet вместо localhost, и это сработало:
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 контейнера, таким образом размещая приложение и mongo на одной виртуальной машине (сервере). Ваш mongoDB не должен быть доступен с общедоступного IP-адреса из соображений безопасности.
Вам нужно, чтобы ваше приложение работало в одном окне терминала, затем откройте другое и введите «meteor mongo», и оно должно работать!