Hem*_*nth 49 ruby-on-rails ruby-on-rails-3
我需要从我已经创建的rails模型中删除一些列,并在该模型中包含一些行条目.怎么做?是否包含有关在rails中修改架构的详细信息的链接?我正在使用rails版本3.
小智 58
要删除数据库列,您必须生成迁移:
script/rails g migration RemoveColumns
Run Code Online (Sandbox Code Playgroud)
然后在self.up类方法中删除列:
def self.up
remove_column :table_name, :column_name
end
Run Code Online (Sandbox Code Playgroud)
您可能还想将它们添加回self.down类方法中:
def self.down
add_column :table_name, :column_name, :type
end
Run Code Online (Sandbox Code Playgroud)
在Rails的指南此进入更多的细节.
slm*_*slm 41
如果您知道要删除的列,则可以使用约定:在命名迁移时删除..从.. 此外,您可以在运行迁移命令时包含列名称.
命令的形式:
rails g migration Remove..From.. col1:type col2:type col3:type
Run Code Online (Sandbox Code Playgroud)
例如:
rails g migration RemoveProjectIDFromProjects project_id:string
Run Code Online (Sandbox Code Playgroud)
生成以下迁移文件:
class RemoveProjectIdFromProjects < ActiveRecord::Migration
def self.up
remove_column :projects, :project_id
end
def self.down
add_column :projects, :project_id, :string
end
end
Run Code Online (Sandbox Code Playgroud)
通过命令替代项as Add,仅更改Add为Remove:
单列:
rails g migration RemoveColumnFromTable column:type
Run Code Online (Sandbox Code Playgroud)
多列:
rails g migration RemoveColumn1AndColumn2FromTable column1:type colummn2:type
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48905 次 |
| 最近记录: |