Ruby on rails Rails迁移:向已加载记录的表中添加额外的列

Ruby on rails Rails迁移:向已加载记录的表中添加额外的列,ruby-on-rails,Ruby On Rails,我使用的是rails 2.3.8。我已经为一个名为user的表创建了一个迁移,该表目前有大量记录 现在需要在其中添加一个新列 我必须创建一个新的迁移文件,因为回滚将删除其他表数据。但添加新的迁移并不奏效 def self.up add_column "users", "xyz", :string, :default => "0" end 原因可能是什么 是因为数据已经加载了吗 这与缓存有关吗 提前感谢。继@elmt的评论之后,您应该使用rails根目录中的命令创建迁移: s

我使用的是rails 2.3.8。我已经为一个名为
user
的表创建了一个迁移,该表目前有大量记录

现在需要在其中添加一个新列

我必须创建一个新的迁移文件,因为回滚将删除其他表数据。但添加新的迁移并不奏效

def self.up
     add_column "users", "xyz", :string, :default => "0"
end
原因可能是什么

  • 是因为数据已经加载了吗
  • 这与缓存有关吗

提前感谢。

继@elmt的评论之后,您应该使用rails根目录中的命令创建迁移:

script/generate migration <your_migration_name>

这将创建一个文件名,格式为
db/migrate/20101122128814\u add\u xyz\u to\u users.rb
。这就是您应该添加迁移的地方。如果文件名命名不正确,迁移将无法运行。

本正确指出。这可能是由于较旧的迁移版本号造成的。但是你能说出你面临的是哪种类型的错误吗?是在运行迁移还是什么过程中?

您是否使用了生成器?如果时间戳比原始迁移文件的时间戳旧,则它不会执行任何操作。是的,我已使用生成器创建了新的迁移…脚本/生成迁移添加_xyz_到_用户。时间戳看起来很好…我执行了User.reset_collumn_信息问题已得到解决。重置有关列的所有缓存信息,这将导致在下一个请求中重新加载它们。
script/generate migration add_xyz_to_users