2010-11-24 2 views
4

Будучи глупым и небрежным, я случайно уронил свой стол с содержимым. Как повторно создать эту таблицу в RAils? Пытался запустить rake db:migrate, но он не создал новую таблицу. Благодарю.Rails - Случайно опустил мой стол

ответ

8

Вы можете выполнять определенные миграции независимо от того, были ли они запущены или нет.

rake db:migrate:up VERSION=20101124121304 

Этот метод запускается при миграции, созданной 24.11.2010 в 12:13:04. Найдите файл миграции, содержащий нужную таблицу, и повторите миграцию. При этом любые данные из этой таблицы не подлежат восстановлению.

+0

Я думаю, что это acutally rake db: migrate: redo VERSION = 20101124121304. Только это сработало в моем случае. – 2017-02-27 10:57:54

0

Если вы используете таблицу MySQL, вы не сможете восстановить эти данные, если не сделали резервную копию.

2

Вы не можете восстановить данные, но я предполагаю, что вам просто нужна структура?

Проверьте, есть ли у вас db/schema.rb актуально. Он должен содержать определение текущей структуры вашей таблицы.

Вы можете восстановить всю базу данных от db/schema.rb используя rake db:setup. Я не знаю метода, который воссоздает только одну таблицу.

Но, возможно, вы можете создать новую базу данных с использованием другого имени и скопировать структуру. Или утомительно воссоздать таблицу самостоятельно, основываясь на том, что находится в db/schema.rb.

+0

До сих пор я использовал только фальшивые данные, поэтому мне не хотелось восстанавливать потерянные данные. Я также не хотел изменять файл схемы с помощью миграции. Использование `rake db: setup` работало для воссоздания структуры db. – Dennis 2014-01-31 17:32:24