在迁移中添加Id列
我有一个Rails应用程序,其中一个模型没有id
列。 做一些研究我发现了创建它的迁移:
create_table(:the_model, :id => false) do |t| # columns end
现在,在新的迁移中,我想以Rails标准方式添加id
列(不使用特定于数据库的sql)。 我怎样才能做到这一点?
我已经尝试过这个没有成功:
change_table(:the_model, :id => true) do |t| end
您可以手动添加id列:
add_column :table_name, :id, :primary_key
或清除(或备份)您的数据,回滚到此迁移,摆脱选项:id => false
,然后重新迁移。
你已经得到了答案,但是在这种情况下,这里有一个单行程
rails generate migration AddIdToModel id:integer
查看迁移文件名的语法Add ColumnName To TableName跟随列描述。 它将生成如下所示的内容
class AddIdToModel < ActiveRecord::Migration def change add_column :models, :id, :integer end end
现在,如果您有任何其他想法,可以更改此行。 并运行rake db:migrate
。
你不需要提及:integer
rails g migration add_id_to_model id:primary_key
为我工作。
- finder_sql不使用Rails解析字符串
- 重用named_scope来定义另一个named_scope
- 在数据库中清晰地表示电子商务产品和变体
- Rails添加错误:base不按预期工作
- Rails accepted_nested_attributes_for错误,请帮我发现它
- 为什么我的文本框在表单中显示ActiveRecord_Associations_CollectionProxy
- ActiveRecord :: Base.transaction应该在哪里?
- Rails 5 db migration:如何修复ActiveRecord :: ConcurrentMigrationError
- Railsvalidation以确保用户名不会与现有路由冲突?