Ruby on rails 什么决定了什么ActiveRecord可以在更改中回滚
最近我迁移到一个列以设置默认值Ruby on rails 什么决定了什么ActiveRecord可以在更改中回滚,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,最近我迁移到一个列以设置默认值 def change change_column :table, :column, :integer, :default => 0 end 然后我想回滚更改: be rake db:rollback RAILS_ENV=test STEP=2 == AddDefaultValueToPriceTiersRegistrationCountAttribute: reverting ========== rake aborted! StandardEr
def change
change_column :table, :column, :integer, :default => 0
end
然后我想回滚更改:
be rake db:rollback RAILS_ENV=test STEP=2
== AddDefaultValueToPriceTiersRegistrationCountAttribute: reverting ==========
rake aborted!
StandardError: An error has occurred, all later migrations canceled:
ActiveRecord::IrreversibleMigration
ActiveRecord::IrreversibleMigration: ActiveRecord::IrreversibleMigration
我在活动记录文档中看到了可以处理更改的参考,而活动记录不知道如何进行反转。我想了解一下如何确定它无法处理的更改。最好是我想自动知道。比如:
rake db:migrate
---- migration successful, but i'm sorry but i don't know how to reverse it ----
那么,我又如何确定ActiveRecord是否知道如何回滚迁移呢?其次,是否有一个工具可以通知我它是否知道如何回滚迁移
我如何确定ActiveRecord是否知道如何回滚迁移?其次,是否有工具可以通知我它是否知道如何回滚迁移
冒着看起来油嘴滑舌的风险,我想说这个工具是rakedb:rollback
因为迁移可以包含任意代码,所以您不应该相信任何迁移都可以在不进行实际测试的情况下进行反转
我如何确定ActiveRecord是否知道如何回滚迁移?其次,是否有工具可以通知我它是否知道如何回滚迁移
冒着看起来油嘴滑舌的风险,我想说这个工具是rakedb:rollback
因为迁移可以包含任意代码,所以您不应该相信任何迁移都可以在不进行实际测试的情况下进行反转
我如何确定ActiveRecord是否知道如何回滚迁移?其次,是否有工具可以通知我它是否知道如何回滚迁移
冒着看起来油嘴滑舌的风险,我想说这个工具是rakedb:rollback
因为迁移可以包含任意代码,所以您不应该相信任何迁移都可以在不进行实际测试的情况下进行反转
我如何确定ActiveRecord是否知道如何回滚迁移?其次,是否有工具可以通知我它是否知道如何回滚迁移
冒着看起来油嘴滑舌的风险,我想说这个工具是rakedb:rollback
因为迁移可以包含任意代码,所以您不应该相信任何迁移都可以在不进行实际测试的情况下进行反转。Rails要回滚迁移,必须满足以下两个条件之一:
up
和down
操作,它们明确告诉Rails如何执行down
迁移,或者更改
迁移过程中引起的更改change_column :table, :column, :integer, :default => 0
在迁移运行之前,Rails无法推断此列的类型或其他属性。如果你不能说出这条线改变了什么,Rails也不能
通常,如果您正在创建某个对象,“向下”迁移是显而易见的:销毁已创建的对象。如果删除/修改某些内容,Rails无法知道修改前的状态,也无法自动回滚该状态。要让Rails回滚迁移,需要满足以下两个条件之一:
up
和down
操作,它们明确告诉Rails如何执行down
迁移,或者更改
迁移过程中引起的更改change_column :table, :column, :integer, :default => 0
在迁移运行之前,Rails无法推断此列的类型或其他属性。如果你不能说出这条线改变了什么,Rails也不能
通常,如果您正在创建某个对象,“向下”迁移是显而易见的:销毁已创建的对象。如果删除/修改某些内容,Rails无法知道修改前的状态,也无法自动回滚该状态。要让Rails回滚迁移,需要满足以下两个条件之一:
up
和down
操作,它们明确告诉Rails如何执行down
迁移,或者更改
迁移过程中引起的更改change_column :table, :column, :integer, :default => 0
在迁移运行之前,Rails无法推断此列的类型或其他属性。如果你不能说出这条线改变了什么,Rails也不能
通常,如果您正在创建某个对象,“向下”迁移是显而易见的:销毁已创建的对象。如果删除/修改某些内容,Rails无法知道修改前的状态,也无法自动回滚该状态。要让Rails回滚迁移,需要满足以下两个条件之一:
up
和down
操作,它们明确告诉Rails如何执行down
迁移,或者更改
迁移过程中引起的更改change_column :table, :column, :integer, :default => 0
在迁移运行之前,Rails无法推断此列的类型或其他属性。如果你不能说出这条线改变了什么,Rails也不能
通常,如果您正在创建某个对象,“向下”迁移是显而易见的:销毁已创建的对象。如果您删除/修改了某些内容,Rails无法知道修改前的状态,也无法自动回滚。sorry@BradWe