Будучи глупым и небрежным, я случайно уронил свой стол с содержимым. Как повторно создать эту таблицу в RAils? Пытался запустить rake db:migrate
, но он не создал новую таблицу. Благодарю.Rails - Случайно опустил мой стол
ответ
Вы можете выполнять определенные миграции независимо от того, были ли они запущены или нет.
rake db:migrate:up VERSION=20101124121304
Этот метод запускается при миграции, созданной 24.11.2010 в 12:13:04. Найдите файл миграции, содержащий нужную таблицу, и повторите миграцию. При этом любые данные из этой таблицы не подлежат восстановлению.
Если вы используете таблицу MySQL, вы не сможете восстановить эти данные, если не сделали резервную копию.
Вы не можете восстановить данные, но я предполагаю, что вам просто нужна структура?
Проверьте, есть ли у вас db/schema.rb
актуально. Он должен содержать определение текущей структуры вашей таблицы.
Вы можете восстановить всю базу данных от db/schema.rb
используя rake db:setup
. Я не знаю метода, который воссоздает только одну таблицу.
Но, возможно, вы можете создать новую базу данных с использованием другого имени и скопировать структуру. Или утомительно воссоздать таблицу самостоятельно, основываясь на том, что находится в db/schema.rb
.
До сих пор я использовал только фальшивые данные, поэтому мне не хотелось восстанавливать потерянные данные. Я также не хотел изменять файл схемы с помощью миграции. Использование `rake db: setup` работало для воссоздания структуры db. – Dennis 2014-01-31 17:32:24
Я думаю, что это acutally rake db: migrate: redo VERSION = 20101124121304. Только это сработало в моем случае. – 2017-02-27 10:57:54