【问题标题】:Mysql2::Error: Key column 'hotel_user_id' doesn't exist in tableMysql2::Error: 表中不存在键列“hotel_user_id”
【发布时间】:2014-11-13 05:42:27
【问题描述】:

我有:

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。我订购了我想设置外键的表。但是我在创建表时遇到了上述错误。

【问题讨论】:

标签: mysql ruby-on-rails ruby-on-rails-4


【解决方案1】:

问题是列hotel_user_id 存在于订单表中,而您正在为hotel_users 表的同一列创建索引。

【讨论】:

    猜你喜欢
    • 2014-11-02
    • 1970-01-01
    • 1970-01-01
    • 2014-07-10
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 2014-09-19
    相关资源
    最近更新 更多