Скажем, есть сервер MongoDB для GUI-клиента (wxPython) некоторое время.
Как я могу подключить свой новый проект Meteor к уже существующему MongoDB?
Скажем, есть сервер MongoDB для GUI-клиента (wxPython) некоторое время.
Как я могу подключить свой новый проект Meteor к уже существующему MongoDB?
Используйте переменную окружения MONGO_URL. Что-то вроде:
export MONGO_URL=mongodb://localhost:27017/your_db
Замените your_db
на meteor
или любой другой db, который вы хотите использовать.
Мы используем npm
:
Создайте файл package.json
с npm init
, если у вас его еще нет.
Введите и измените следующую строку в этом файле (заменив все <...>
):
"scripts": {"meteor": "MONGO_URL=mongodb://<USER>:<PASSWORD>@<SERVER>:<PORT>/<DB> meteor"}
npm run meteor
В комментарии к данни ответят Том Вейсман рекомендует патч-пакеты/mongo-livingata/mongo_driver.js, строка 21. Лучшее место в приложении/метеоре/пробеге .js, строка 460. Таким образом, переменная окружения по-прежнему сохраняется, если она присутствует, например, при запуске Meteor на Heroku. Просто измените по умолчанию hardcoded mongodb://127.0.0.1 на местоположение вашего сервера MongoDB.
Вы можете использовать db.copyDatabase для этого, с оговоркой, что есть ошибка, и вы не можете обновлять данные в Meteor. См. https://github.com/meteor/meteor/issues/61
Если вы используете версию Meteor для разработки, вы можете перенести данные с работающего сервера MongoDB, запустив приложение Meteor, а затем выполните:
mongo --port 3002
Это приведет вас к серверу Meteor app Mongo. Теперь используйте db.copyDatabase следующим образом:
db.copyDatabase('myappDatabase', 'meteor', 'localhost');
Это скопирует базу данных myappDatabase с сервера MongoDB, работающего на стандартном порту на localhost, на сервер Meteor приложения Mongo. Имя базы данных, которое использует приложение Meteor, - "метеорит".
Просто скопируйте данные в базу данных Meteor MongoDB - нет причин пытаться подключить Meteor к существующей базе данных и рискнуть перезаписывать вещи.
Используйте mongoexport
, чтобы сбрасывать ваши коллекции отдельно, а затем mongoimport
, чтобы импортировать файлы в базу данных с именем meteor
в экземпляре Meteor MongoDB. Экземпляр Meteor MongoDB работает на порту 3002 с bind_address 127.0.0.1, а файлы данных находятся в подкаталоге проекта Meteor .meteor/local/db
.
Смотрите документацию, если вы не знакомы с импортом/экспортом в MongoDB.
Все, что я сделал, это добавить IP-адрес моего цифрового капель-сервера, а не localhost, и это сработало:
env: {
ROOT_URL: 'http://yourdomain.com',
MONGO_URL: 'mongodb://104.236.24.66:27017/meteor',
PORT: 3002,
},
EDIT: используйте 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", и оно должно работать!