将:id的名称修改为:rails 3中的another_id

时间:2012-07-03 20:02:39

标签: ruby-on-rails ruby-on-rails-3.2

好吧我用Google搜索了我的问题,但我找不到任何东西,或者我这不是正确的问题..

问题是我需要修改数据库的primary_key名称:id with:another_id,在我的项目中我需要使用pgrouting并且它包含几个plsql函数,这些函数使用名为gid的主键而不是修改plsql函数最好更改id名称,我想用迁移来做这件事,因为我认为这是轨道方式。

有可能吗,我怎么能这样做?

提前致谢,对不起我的英语。

修改

  create_table :pruebas, primary_key: :gid do |t|
    t.string :name
    t.timestamps
  end

这样做,并使用此活动记录生成并使用pk作为gid。

对不起,如果我的问题不明确..格拉西亚斯拉斯respuestas。

2 个答案:

答案 0 :(得分:1)

要自己设置主键,在创建表时,您可以执行以下操作:

create_table(:table_name, primary_key: 'gid') do |t|
   ...
end

您需要在模型中定义主键名称:

self.primary_key = 'gid'

答案 1 :(得分:1)

我没有使用PostgreSQL或pgRouting的经验,但我相信您正在寻找的是一种指示ActiveRecord使用不同列作为主键的方法。

我相信你正在寻找set_primary_key。

class Project < ActiveRecord::Base
  set_primary_key "gid"
end