除了id之外,还需要作为rails活动记录迁移脚本中的主键

时间:2014-10-09 09:25:02

标签: mysql sql ruby-on-rails migration rails-migrations

我有一张叫做学生的桌子

mysql> desc students;
+--------------------+---------------+------+-----+---------+----------------+
| Field              | Type          | Null | Key | Default | Extra          |
+--------------------+---------------+------+-----+---------+----------------+
| id                 | int(11)       | NO   | PRI | NULL    | auto_increment |
| height             | decimal(15,8) | YES  |     | NULL    |                |
| name               | varchar(255)  | YES  |     | NULL    |                |
| text               | varchar(255)  | YES  |     | NULL    |                |
| status             | tinyint(4)    | YES  |     | NULL    |                |
| created_at         | datetime      | YES  |     | NULL    |                |
| updated_at         | datetime      | YES  |     | NULL    |                |
+--------------------+---------------+------+-----+---------+----------------+

我想创建一个名为students_data的新表,该表将student_name作为外键,并将其命名为students表中的主键。我该如何更改脚本?以下脚本将id作为学生表的主键

class CreateStudentsData < ActiveRecord::Migration
  def change
    create_table :students_data do |t|
      t.belongs_to :students, :foreign_key => :student_name, :primary_key => :name
    end
  end
end

我应该如何更改脚本以将名称作为主键?

注意:我不想将primary_key id设置为false,如建议的here。我需要id和name作为主键。

1 个答案:

答案 0 :(得分:0)