Module: Cms::Upgrades::V3_5_0::Retroactive_v3_4_0Updates
- Defined in:
- lib/cms/upgrades/v3_5_0.rb
Overview
Technically these updates are for v3_4_0, but I want to avoid having to change existing migrations
These migrations are designed to make it easy for modules to write migrations for their content blocks with minimal code.
Instance Method Summary collapse
-
#v3_5_0_apply_namespace_to_block(module_name, model_class_name) ⇒ Object
Applys table namespacing and other fixes to blocks that need upgrading from < 3.4.0 to 3.5.
- #v3_5_0_namespace_model(module_name, model_class_name) ⇒ Object
- #v3_5_0_namespace_model_data(module_name, model_class_name) ⇒ Object
- #v3_5_0_standardize_version_id_column(table_prefix, model_name) ⇒ Object
- #v3_5_0_update_connector_namespaces(module_name, model_class_name) ⇒ Object
Instance Method Details
#v3_5_0_apply_namespace_to_block(module_name, model_class_name) ⇒ Object
Applys table namespacing and other fixes to blocks that need upgrading from < 3.4.0 to 3.5.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/cms/upgrades/v3_5_0.rb', line 19 def v3_5_0_apply_namespace_to_block(module_name, model_class_name) puts "Applying namespace '#{module_name}' to model '#{model_class_name}'" table_prefix = module_name.underscore model_name = model_class_name.underscore old_content_table = model_name.pluralize new_content_table = "#{table_prefix}_#{model_name.pluralize}" rename_table old_content_table, new_content_table if have_not_renamed(old_content_table, new_content_table) old_versions_table = "#{model_name}_versions" new_versions_table = "#{table_prefix}_#{model_name}_versions" rename_table old_versions_table, new_versions_table if have_not_renamed(old_versions_table, new_versions_table) v3_5_0_standardize_version_id_column(table_prefix, model_name) v3_5_0_namespace_model_data(module_name, model_class_name) v3_5_0_update_connector_namespaces(module_name, model_class_name) end |
#v3_5_0_namespace_model(module_name, model_class_name) ⇒ Object
59 60 61 |
# File 'lib/cms/upgrades/v3_5_0.rb', line 59 def v3_5_0_namespace_model(module_name, model_class_name) "#{module_name}::#{model_class_name}" end |
#v3_5_0_namespace_model_data(module_name, model_class_name) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/cms/upgrades/v3_5_0.rb', line 43 def v3_5_0_namespace_model_data(module_name, model_class_name) found = Cms::ContentType.named(model_class_name).first if found found.name = v3_5_0_namespace_model(module_name, model_class_name) found.save! end end |
#v3_5_0_standardize_version_id_column(table_prefix, model_name) ⇒ Object
37 38 39 40 41 |
# File 'lib/cms/upgrades/v3_5_0.rb', line 37 def v3_5_0_standardize_version_id_column(table_prefix, model_name) if column_exists?("#{table_prefix}_#{model_name}_versions", "#{model_name}_id") rename_column("#{table_prefix}_#{model_name}_versions", "#{model_name}_id", :original_record_id) end end |
#v3_5_0_update_connector_namespaces(module_name, model_class_name) ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/cms/upgrades/v3_5_0.rb', line 51 def v3_5_0_update_connector_namespaces(module_name, model_class_name) namespaced_class = v3_5_0_namespace_model(module_name, model_class_name) Cms::Connector.where(:connectable_type => model_class_name).each do |connector| connector.connectable_type = namespaced_class connector.save! end end |