我遇到了一个非常奇怪的问题。我有一个重置我的数据库的任务:
task :reset => [:drop, :create, :migrate, :seed]
问题是,我在播种时收到错误,因为缺少在后期迁移文件中添加的列。一个例子:
undefined method new_attr= for User
然而,此属性已在迁移中添加。奇怪的是,如果我单独运行上述任务,我不会收到任何错误。任何人都可以解释一下吗?当然,这些任务不能异步运行。
避免错误的另一种方法是使用新属性修改我之前的迁移 create_。然后运行 :reset 不会触发这些属性的错误。
迁移显然很好,因为我可以单独运行上述任务,而不是捆绑在单个任务下。