2016-05-17 8 views
1

Я создал таблицу под названием «свойство», и я еще не перенес ее. Затем я хотел удалить таблицу, поэтому, когда я сделал rake db:rollback, как показано ниже. Моя ранее созданная таблица, которую я вообще не хочу удалять, теперь вернулась. Как мне оживить мой комментарий модели и вместо этого удалить только последнюю модель «свойство».Rails: Ошибка возврата

Некоторые комментарии говорят, что «повторить» или «запустить мигрировать», но если я сделаю rake db:migrate, я чувствую, что он удалит модель комментария навсегда. Я ошибаюсь? Какое правильное решение вернуть модель комментариев?

:~/workspace (revoke) $ rails g model property title address note price$ priceW 
Running via Spring preloader in process 3066 
     invoke active_record 
     create db/migrate/20160517222114_create_properties.rb 
     create app/models/property.rb 
     invoke test_unit 
     create  test/models/property_test.rb 
     create  test/fixtures/properties.yml 
:~/workspace (revoke) $ bundle exec rake db:rollback 
== 20160506122941 CreateComments: reverting =================================== 
-- drop_table(:comments) 
    -> 0.0011s 
== 20160506122941 CreateComments: reverted (0.0096s) ========================== 

ответ

0

После того, как вы сделали rake db:rollback, вы внесли изменения в базу данных. В этом случае он опустил таблицу comments, как вы можете видеть на выходе: drop_table(:comments). Данные уже исчезли. Мы все были там хотя бы один раз.

Запуск rake db:migrate восстановит структуру таблицы comments, но не данные в ней. В этой ситуации, если вы хотите дойти до того, что ваша новая таблица property не переносится, вы можете запустить rake db:migrate для запуска всех новых миграций, а затем rake db:rollback один раз, чтобы откат миграции для property.

+0

Спасибо за ваш ответ! Есть ли способ восстановить данные в таблице комментариев? – user6211530

+0

К сожалению, нет стандартного способа. Если у вас есть ваши файлы журналов, вы можете, вероятно, воскресить содержимое «комментариев» оттуда, но для этого потребуется некоторый поиск. Вы захотите найти записи журнала, которые являются POST, на ваш маршрут '/ comments' (или'/parent/comments', если он вложен), и найдите хеш 'params' для действия. –

+0

Звучит очень сложно .. но большое спасибо за информацию ~! – user6211530