Скажімо, на деякий час існує запущений сервер 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-livedata / mongo_driver.js, рядок 21. Краще місце знаходиться в app / meteor / run.js, рядок 460. Таким чином змінна середовища все ще підбирається, якщо вона присутня , наприклад, під час запуску Meteor на Heroku. Просто змініть монгований монгод: //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, на сервер програми Meteor 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-адресу мого сервера цифрових океанських крапель замість 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", і вона повинна працювати!