2014-11-13 3 views
0

у меня есть:mysql2 :: Ошибка: Ключ столбец 'hotel_user_id' не существует в таблице

def change 

    create_table :orders do |t| 
    t.string :name 
    t.text :address,:limit=>500 
    t.string :email 
    t.string :pay_type 
    t.string :phone,:limit=>25 
    t.integer :hotel_user_id 
    t.timestamps 
    end 

    add_index("hotel_users","hotel_user_id") 
end 

Ошибка в журнале:

$ rake db:migrate 
== 20140822140639 CreateOrders: migrating ==================================== 
-- create_table(:orders) 
    -> 0.0790s 

-- add_index("hotel_users", "hotel_user_id") 
rake aborted! 

StandardError: An error has occurred, all later migrations canceled: 


Mysql2::Error: Key column 'hotel_user_id' doesn't exist in table: CREATE INDEX index_hotel_users_on_hotel_user_id` ON 'hot 
el_users' ('hotel_user_id') F:/OrderBooking/db/migrate/20140822140639_create_orders.rb:12:in 'change' 
c:in 'migrate' 
Tasks: TOP => db:migrate 
(See full trace by running task with --trace)' 

У меня есть таблица hotel_users, которая имеет много orders. Я заказываю таблицу, я хочу установить внешний ключ. Но я получаю указанную выше ошибку при создании таблицы.

+0

'hotel_users' миграция существует? Я думаю, что ваша колонка еще не существует. –

+0

этот вопрос похож на [см] [1] [1]: http://stackoverflow.com/questions/18673193/need-to-use-add-index-on-migration-for -belongs-to-has-many-relationship-rails –

ответ

0

Проблема заключается в том, что столбец hotel_user_id существует в таблице заказов, и вы создаете индекс в том же столбце таблицы hotel_users.

+0

ohh .... я сделал глупую ошибку –

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