Ruby on rails 修改多个表中列的类型
我在数据库中的几个表中都有相同的属性,这个属性称为Ruby on rails 修改多个表中列的类型,ruby-on-rails,Ruby On Rails,我在数据库中的几个表中都有相同的属性,这个属性称为address,类型为string,如何将其更改为text,但我想在多个表中执行此操作 有没有办法在同一次迁移中进行所有这些更改 class ChangeTypeAddressPlaces < ActiveRecord::Migration[5.0] def up change_table :precints do |t| t.change :address, :text end change_ta
address
,类型为string
,如何将其更改为text
,但我想在多个表中执行此操作
有没有办法在同一次迁移中进行所有这些更改
class ChangeTypeAddressPlaces < ActiveRecord::Migration[5.0]
def up
change_table :precints do |t|
t.change :address, :text
end
change_table :precint_events do |t|
t.change :address, :text
end
change_table :precint_translations do |t|
t.change :address, :text
end
change_table :locations do |t|
t.change :address, :text
end
change_table :location_events do |t|
t.change :address, :text
end
change_table :location_translations do |t|
t.change :address, :text
end
end
def down
change_table :precints do |t|
t.change :address, :string
end
change_table :precint_events do |t|
t.change :address, :string
end
change_table :precint_translations do |t|
t.change :address, :string
end
change_table :locations do |t|
t.change :address, :string
end
change_table :location_events do |t|
t.change :address, :string
end
change_table :location_translations do |t|
t.change :address, :string
end
end
end
class ChangeTypeAddressPlaces
您可以使用change\u列
迁移方法更简洁。您的迁移类似于下面的示例。我建议大家也通读一下这本书
class ChangeTypeAddressPlaces
def up
change_column :precints, :address, :text
change_column :precint_events, :address, :text
change_column :precint_translations, :address, :text
change_column :locations, :address, :text
change_column :location_events, :address, :text
change_column :location_translations, :address, :text
end
def down
change_column :precints, :address, :string
change_column :precint_events, :address, :string
change_column :precint_translations, :address, :string
change_column :locations, :address, :string
change_column :location_events, :address, :string
change_column :location_translations, :address, :string
end
class ChangeTypeAddressPlaces < ActiveRecord::Migration[5.0]
TABLES = [:precints, :precint_events, :precint_translations,
:locations, :location_events, :location_translations]
def up
TABLES.each { |table| change_column table, :address, :text }
end
def down
TABLES.each { |table| change_column table, :address, :string }
end
end