0

Недавно я обновил свое приложение до Rails 4 (от Rails 3.2).Rails 4 проблема с таблицами базы данных mysql после обновления с Rails 3.2

Но кажется, что приложение больше не находит некоторые таблицы mysql, например таблицу с именем Accidents.

В приложении я нахожу эту ошибку:

Mysql2::Error: Table 'gms.accidents' doesn't exist: SHOW FULL FIELDS FROM `accidents` 

Хорошо, это, кажется, что таблица не существует больше, то (видно, что в режиме разработчика и нет никаких проблем, чтобы сбросить DB) , я бегу в терминале rake db:schema:load, но:

-- create_table("accidents", {:force=>true}) 
rake aborted! 
Mysql2::Error: Tablespace for table '`gms`.`accidents`' exists. Please DISCARD the tablespace before IMPORT.: CREATE TABLE `accidents` 
[...] 

Что случилось? Таблица не существует, но существует?
Почему приложение не находит больше таблиц?

+1

3 Предложения: 1. Проверьте свой конфиг/database.yml и убедитесь, что он имеет правильную информацию о подключении. 2. Изучите данные в инструменте или подсказке mysql и проверьте там вещи. 3. Скажите, какие таблицы работают? –

+0

спасибо @MichaelDurrant за предложения. В синтезе: 1. нормально; 2. с помощью средства mysql таблица не существует (не знаю почему); 3 ...; Я удалил вручную базу данных (с rake db: drop не работает ...), а затем заново создайте другую. Теперь кажется, что работа, но странно, что происходит. – damoiser

+0

ОК, тогда я отправлю это как ответ, я тоже это сделал. –

ответ

1

Один вариант (не исправление, но может позволить вам двигаться вперед).

Если это всего лишь база данных разработки или локальной базы данных, отбросьте базу данных вручную и обновите таблицу schema_migrations, а затем rake: db migrate, чтобы воссоздать с нуля.

+0

просто примечание: лучше, чем rake db: migrate is: 1. rake db: create, 2. rake db: schema: load (поэтому он загружает непосредственно «окончательную» версию db, а не все миграции) – damoiser

+0

Да, что работает и во многих случаях может быть лучшим вариантом. Обратите внимание: если люди установили обновления данных, а также схему (да, я вижу это), могут возникнуть проблемы. –