Отбросьте и воссоздайте одну таблицу (на Heroku)


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

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

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

4 2

4 ответа:

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

$ heroku run console
Ruby console for myap.heroku.com
>> ModelName.delete_all
>> exit
Я знаю, что мог бы сделать это в миграции, но это похоже на такую халтуру.

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

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

heroku run console
irb(main):001:0> ModelName.delete_all

И вы закончили.