Fix bim module migration

pull/8068/head
Oliver Günther 5 years ago
parent 1451799938
commit f928711737
No known key found for this signature in database
GPG Key ID: A3A8BDAD7C0C552C
  1. 14
      db/migrate/20200220171133_rename_bim_module.rb

@ -1,16 +1,26 @@
class RenameBimModule < ActiveRecord::Migration[6.0]
def up
projects_with_bcf = EnabledModule.where(name: 'bcf').pluck(:project_id)
# Delete all bcf to avoid duplicates
EnabledModule.where(name: 'bcf').delete_all
EnabledModule.where(name: 'ifc_models').update_all(name: 'bim')
# Re-enable bim if ifc_models was not active
# Re-enable bim if ifc_models was not active but bcf was
Project.where(id: projects_with_bcf).includes(:enabled_modules).each do |project|
project.enabled_module_names << 'bim' unless project.enabled_module_names.include?('bim')
project.enabled_modules.create(name: 'bim') unless project.enabled_module_names.include?('bim')
end
# Rename attachments container
Attachment.where(container_type: 'Bcf::Viewpoint').update_all(container_type: 'Bim::Bcf::Viewpoint')
Attachment.where(container_type: 'IFCModels::IFCModel').update_all(container_type: 'Bim::IfcModels::IfcModel')
end
def down
# We cannot now which module was active, so enable BCF
EnabledModule.where(name: 'bim').update_all(name: 'bcf')
# Rename attachments container
Attachment.where(container_type: 'Bim::Bcf::Viewpoint').update_all(container_type: 'Bcf::Viewpoint')
Attachment.where(container_type: 'Bim::IfcModel::IfcModel').update_all(container_type: 'IFCModels::IFCModel')
end
end

Loading…
Cancel
Save