2013-12-04 2 views
0

Im пытается удалить таблицу и усечь ее, используя следующие варианты кода. Все следующие версии дают мне ту же ошибку.Rails 4 - Использование MySQL2 gem получает ошибку «Таблица не существует»

Код: путы "Очистка таблицы базы данных: program_slots" ProgramSlot.destroy_all ActiveRecord :: Base.connection.execute ("TRUNCATE TABLE program_slots")

puts "Clearing Database Table: program_slots" 
ProgramSlot.destroy_all 
ActiveRecord::Base.connection.execute("TRUNCATE TABLE PROGRAMSLOTS") 

    puts "Clearing Database Table: program_slots" 
ProgramSlot.destroy_all 
ActiveRecord::Base.connection.execute("TRUNCATE TABLE 'program_slots'") 

    puts "Clearing Database Table: program_slots" 
ProgramSlot.destroy_all 
ActiveRecord::Base.connection.execute("TRUNCATE TABLE PROGRAM_SLOTS") 

Имя таблицы program_slots

ошибка Im получаю:

>> ProgramSlot Load (0.6ms) SELECT `program_slots`.* FROM `program_slots` 

    (0.8ms) TRUNCATE TABLE PROGRAMSLOTS 

    Mysql2::Error: Table 'dd_development.programslots' doesn't exist: TRUNCATE TABLE PROGRAMSLOTS 

Правильный синтаксис? Кажется, что символ подчеркивания, который я ввел в мой оператор выполнения, не проходит ....... Обратите внимание, что оператор ошибки пытается найти таблицу под названием «programlots», но имя реальной таблицы - «program_slots».

Как исправить это?

ответ

0

Имена таблиц MySQL чувствительны к регистру, поэтому вот почему # 1 и # 3 терпят неудачу. Если вы собираетесь использовать кавычки, тогда вам нужно использовать правильные для MySQL, поэтому # 2 терпит неудачу. Я не уверен, почему это:

ActiveRecord::Base.connection.execute("TRUNCATE TABLE program_slots") 

не работает. Если это не так, вы можете использовать это:

ActiveRecord::Base.connection.execute("TRUNCATE TABLE `program_slots`") 

Обратите внимание на угловые одинарные кавычки.

Смежные вопросы