Оставьте и воссоздайте один стол (на Heroku) - PullRequest
2 голосов
/ 07 марта 2011

Мое приложение находится в бета-версии, и я проводил ограниченное тестирование функции, включающей новую модель. После значительного количества испытаний мне пришлось внести структурное изменение, которое сделает старые данные неработоспособными.

Что мне нужно сделать, это просто сбросить и воссоздать одну таблицу. Я знаю, что я мог бы сделать это во время миграции, но это похоже на взлом. В локальной копии разработчика я бы просто использовал db:reset, но в бета-приложении я не хочу терять данные ни в одной таблице, кроме этой.

Это простой способ указать производственному приложению удалить и воссоздать одну таблицу. В моем случае я развертываю с Heroku, если это влияет на то, как вы решите эту проблему.

Ответы [ 4 ]

7 голосов
/ 07 марта 2011

Чтобы очистить таблицу в Heroku без изменения схемы, в каталоге вашего приложения:

$ heroku run console
Ruby console for myap.heroku.com
>> ModelName.delete_all
>> exit
1 голос
/ 07 марта 2011

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

Это не хак. Это именно то, для чего предназначены миграции.

0 голосов
/ 30 июля 2015
heroku run console
irb(main):001:0> ModelName.delete_all

И все готово.

0 голосов
/ 08 марта 2011

Вам нужно перезапустить миграцию для этой таблицы, чтобы внести структурные изменения. Я раньше не использовал ActiveRecord, но я бы также удалил данные из таблицы, используя ModelName.delete_all из консоли heroku.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...