Знаете ли вы способ очистки базы данных heroku / mongohq?

#mongodb #heroku #rake #mongoid #seed

#mongodb #heroku #грабли #mongoid #начальное

Вопрос:

Я ищу способ сбросить mongodb, развернутый на heroku / mongohq, что-то вроде # heroku rake db:reset Я знаю, что можно напрямую войти в mongohq и удалить его, но я бы хотел быструю командную строку.

Заранее спасибо, Лука

Комментарии:

1. Вы не можете войти в MongoHQ через свою панель управления Heroku и удалить базу данных, а затем заново создать ее оттуда?

2. как вы это делаете через Heroku dashboard?

3. Единственная процедура, которую я знаю, заключается в следующем: support.mongohq.com/discussions/community-tips /… … но это сложно, и я ищу что-то вроде «очистить базу данных: сброс»

Ответ №1:

В вашем названии вы говорите «очистка», в вашем описании вы говорите «сброс». Вы также используете слово «удалить», как если бы вы хотели удалить базу данных.

  1. Вообще говоря, вы не хотите «перезагружать» MongoDB, если нет какой-либо проблемы с сервером.
  2. Как правило, вы не хотите, чтобы MongoDB «работал грязно», особенно таким образом, что его необходимо «очистить».
  3. Как правило, удаление базы данных — это либо задача администратора, либо задача, связанная с каким-либо тестовым скриптом, который вы запускаете

rake это инструмент сборки, и все это функции администрирования базы данных.

Не могли бы вы более конкретно рассказать о том, что вы пытаетесь сделать?


Хорошо, итак, я нашел больше деталей. Похоже, rake:reset это делает следующее:

 :reset => ['db:drop', 'db:create', 'db:schema:load']
  

Итак, он выполняет удаление, создание и загрузку схемы. Все это специфичные для Rails задачи, и все они привязаны к некоторым специфическим функциям баз данных SQL.

Как правило, в MongoDB нет схемы, поэтому обычно нет необходимости в db:create и db:schema:load . То есть, по сути, вы просто выполняете db:drop (и, возможно, некоторые ensureIndex команды)?

Я рассматриваю остальные из этих задач rake, и многие из них на самом деле не применимы к типичным вариантам использования MongoDB. Если вы действительно хотите эту функциональность, вам, вероятно, придется написать что-то из этого для себя.

Комментарии:

1. Я хотел бы получить примерно то же, что вы получили, запустив «heroku rake db: сброс». Фактически, это работает только для развертывания Heroku / PostgreSQL, а не для Heroku / MongoHQ … То же самое происходит в «локальном» приложении rails, работающем на mysql или sqlite против mongodb

2. db: drop также удаляет пользователей, которых вы настроили в MongoHQ.