Додаток Meteor - скидання БД розгорнутого додатка


82

Чи існує простий спосіб скинути дані з розгорнутої метеорної програми?

Так, наприклад, якби я розгорнув програму з іменем test.meteor.com- як я міг би легко скинути дані, зібрані цією програмою?

Місцево я біжу meteor reset, але я не впевнений, що робити на виробництві.

Відповіді:


108

Якщо у вас є програма, ви можете зробити це в каталозі проекту

meteor deploy test.meteor.com --delete
meteor deploy test.meteor.com 

Перший видаляє програму, щоб вона була порожньою. Другий розгортає новий екземпляр його назад.


Привіт @akshat, ти вважаєш, що stackoverflow.com/questions/10214385/how-does-meteor-work слід знову відкрити?
Дан Даскалеску

це здається трохи хак. чи не існує чистішого способу?
dcsan

Чи призведе цей код до тимчасового захоплення URL-адреси?
Merlin -they-them-

це не має нічого спільного зі скиданням даних програми у виробництві, і я не розумію, чому ця відповідь отримала стільки голосів
MickaelFM

43

один із способів - увійти до екземпляру mongo самостійно та видалити відповідні дані, щоб щось подібне до кожної колекції:

$ meteor mongo APP.meteor.com
> db.users.drop()
> db.xxx.drop()

ви можете просто скинути всю БД, але це заплутає їх середовище, і вам доведеться --deleteзастосувати програму та все одно розгорнути.

> db.dropDatabase()

2
Це має бути прийнятою відповіддю, ви пощадили мене відновити + перезавантажити, дякую!
saimeunt

робити це у виробництві із зареєстрованими користувачами - це погано!
Адаптабі

2
@DotNetWise: Ви не повинні мати робочий APP.meteor.com. У кращому випадку у вас там є бета-версія, і, оскільки вона є бета-версією, люди знають, що очікують такої гикавки (якщо весь їхній обліковий запис і все, що вони коли-небудь робили, видаляються, вважається гикавкою. Уявіть, якби це зробив Facebook - цікаво, скільки людей
заважав

Чудова порада - просто скинути кілька баз даних - це все, що мені справді потрібно було зробити.
ArtOfWarfare

3

Я знаю, що це трохи давно, але я щойно змінив назву своєї колекції. так у вашому /lib/collections.jsфайлі,

someCollection = new Mongo.Collection("originalcollection");

стає

someCollection = new Mongo.Collection("newcollectionname");

звичайно, це передбачає, що ваш додаток генерує дані для бази даних.


1
Ви не видалили тут стару колекцію, а лише створили нову порожню. Якщо ви зробили це в програмі, що працює на сервері (а не лише локально), ви все одно збережете дані на своєму сервері всередині колекції з іменем originalcollection.
kahmali

1
Так @krose, я це визнаю, але справа в тому, що це легко і швидко, якщо вам потрібно щось перевірити. Як зазначали інші, ви не використовуєте myapp.meteor.comдля виробництва. І якщо б ви це зробили, ви, ЗОВНІСТЬ, не хотіли б просто скинути виробничу базу даних. Я роблю цю стратегію, щоб безпечно спробувати нові речі зі своєю моделлю без шкоди для даних. Ця відповідь IMHO була не настільки поганою, що заслужила голос проти, оскільки це набагато безпечніший спосіб роботи з виробничими даними. тоді ви завжди можете скинути конкретну колекцію, як пояснюється в коментарі @ dcsan
Дейв,

1
здається швидким руйнуванням, який ти можеш використати, якщо знаєш, що робиш :) підтриманий, щоб збалансувати негативний голос :)
dcsan

1

Просто ви можете отримати доступ до своєї метеорної бази даних як

production-db-d2.meteor.io:27017/XYZ_meteor_com

де XYZ = ваш субдомен

для автентифікації використовуйте метеор-автентифікацію (ім'я користувача та пароль)

Ви можете отримати доступ до нього за допомогою інструментів rockmongo , robomogo , mongoui тощо.

Для доступу з командного рядка

Спочатку пройдіть автентифікацію, набравши ім’я користувача, пароль метеориту

Логін $ meteor

Тоді

$ метеор монго XYZ.meteor.com

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.