【问题标题】:how to add a primary key to a table in rails如何将主键添加到rails中的表
【发布时间】:2012-03-10 06:45:16
【问题描述】:

您好,我的 rails 应用程序中有一个表,它没有任何 id 列或主键。那是因为该表是从以前的应用程序引入我的 Rails 应用程序的,并且该表已预先填充了数据。我现在意识到,如果没有整数主键,rails 无法在浏览器中显示编辑和显示视图。所以我需要在我的数据库中添加一个 id 列,它是主键并且会自动递增。

根据我的谷歌搜索,我发现了一些关于为表创建主键的帖子,但没有一个是完整的。

所以我想知道是否有人可以在这里帮我一把。到目前为止,我所知道的是,为了更改表,必须编写一个迁移然后运行它。添加id列需要运行的命令如下:

rails generate migration add_id_to_businesses id:primary_key

但是,运行此命令后,我的数据库中没有添加任何新列。我不确定如何继续.. 如何向我的数据库添加新列?

非常感谢您的帮助..... 谢谢,

【问题讨论】:

  • 你几乎肯定想要id:int 而不是主键。您的迁移文件是什么样的?

标签: ruby-on-rails ruby


【解决方案1】:
rails g migration add_id_to_products id:primary_key

      invoke  active_record
      create    db/migrate/20120310085527_add_id_to_products.rb

迁移文件应该看起来像 -

   # db/migrate/20120310085527_add_id_to_products.rb
   class AddIdToProducts < ActiveRecord::Migration
     def change
        add_column :products, :id, :primary_key
     end
   end

【讨论】:

  • 运行 rake db:migrate :)
  • @AttilaO。对!如果您需要其他主键,则必须先添加该列,然后必须触发执行查询以将该列更新为主键。
  • add_column 行的末尾添加first: true 也很好,以便将该列添加为表中的第一个字段。
猜你喜欢
  • 1970-01-01
  • 2010-11-23
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-01
  • 1970-01-01
相关资源
最近更新 更多