#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:
В вашем названии вы говорите «очистка», в вашем описании вы говорите «сброс». Вы также используете слово «удалить», как если бы вы хотели удалить базу данных.
- Вообще говоря, вы не хотите «перезагружать» MongoDB, если нет какой-либо проблемы с сервером.
- Как правило, вы не хотите, чтобы MongoDB «работал грязно», особенно таким образом, что его необходимо «очистить».
- Как правило, удаление базы данных — это либо задача администратора, либо задача, связанная с каким-либо тестовым скриптом, который вы запускаете
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.