ActiveRecord迁移未执行

时间:2013-11-23 00:35:46

标签: ruby-on-rails ruby activerecord sqlite

我是rails的新手,并创建了一个自定义迁移来使用Rails Generate更改我的数据库结构。这是我发布的命令:rails g migration users。

现在,在它创建的文件中,我输入了:

class Users < ActiveRecord::Migration
  def change
    add_column :first_name
    add_column :last_name
    remove_column :name
  end
end

当我运行rake db:migrate时没有任何反应。我需要做些什么来解决这个问题?

1 个答案:

答案 0 :(得分:2)

它根本没有运行?根据您提供的信息很难说。也许您应该尝试使用更独特的名称进行迁移?类似的东西:

rails g migration ConvertUsersNamesToSingleField

我不确定两个具有相同名称的迁移是否很酷。但是像Users这样的短通用名称可能会成为问题。对于后代和清晰度而言,拥有冗长和描述性的迁移名称通常不会有什么坏处。

此问题同意使用非唯一名称进行迁移不起作用:Rails migrations with the same name


但即使跑步,也会引发错误。您需要在这些列调用中包含表名,并且需要在创建字段时指定类型。

class ConvertUsersNamesToSingleField < ActiveRecord::Migration
  def change
    add_column :users, :first_name, :string
    add_column :users, :last_name, :string
    remove_column :users, :name
  end
end