Rails迁移删除字段

时间:2014-07-29 00:30:31

标签: ruby-on-rails migration

您好我将尝试在具有:title和:description的技能数据库上运行rails迁移。我需要删除描述字段,我认为它看起来像这样:

rails migration remove_column :skills, :description

我在尝试它之前由你的专业人员运行它并最终在事故中破坏了某些东西。如果我有正确的想法从数据库中删除描述字段,请告诉我。非常感谢!

2 个答案:

答案 0 :(得分:0)

如果skills是您的表名称,description是您要删除的列的名称,则可以在终端中输入rails g migration RemoveDescriptionFromSkills。这将生成名为[timestamp]_remove_description_from_skills.rb的迁移文件,该文件位于db/migrate。编辑此文件,使其包含以下内容:

class RemoveDescriptionFromSkills < ActiveRecord::Migration
  def change
    remove_column :skills, :description
  end
end

然后在终端中输入rake db:migrate,该列将被删除。

有关详细信息,请查看此有用的Stack Overflow帖子:https://stackoverflow.com/a/1992045/3723769

注意:此答案旨在描述如何执行迁移。作为一项安全措施,您应该在迁移前完成Michael Durrant的建议:https://stackoverflow.com/a/25006727/3723769

答案 1 :(得分:0)

以下是一些需要注意的事项: -

  • 检查现有值以查看是否有您想要的任何数据
  • 查看是否存在任何应该删除的索引。
  • 在该应用程序中搜索该字段名称
  • 查看是否存在可用于降低更改的现有rails迁移

最后,我会考虑正常创建一个change迁移,即一个动作添加字段然后我会使用down语法运行它来删除字段。