|
@@ -0,0 +1,60 @@
|
|
|
+class <%= migration_class_name %> < ActiveRecord::Migration[<%= ActiveRecord::Migration.current_version %>]
|
|
|
+<%- if migration_action == 'add' -%>
|
|
|
+ def change
|
|
|
+<%# Begin Zammad customization -%>
|
|
|
+ # return if it's a new setup
|
|
|
+ return if !Setting.exists?(name: 'system_init_done')
|
|
|
+<%# End Zammad customization -%>
|
|
|
+<% attributes.each do |attribute| -%>
|
|
|
+ <%- if attribute.reference? -%>
|
|
|
+ add_reference :<%= table_name %>, :<%= attribute.name %><%= attribute.inject_options %><%= foreign_key_type %>
|
|
|
+ <%- elsif attribute.token? -%>
|
|
|
+ add_column :<%= table_name %>, :<%= attribute.name %>, :string<%= attribute.inject_options %>
|
|
|
+ add_index :<%= table_name %>, :<%= attribute.index_name %><%= attribute.inject_index_options %>, unique: true
|
|
|
+ <%- elsif !attribute.virtual? -%>
|
|
|
+ add_column :<%= table_name %>, :<%= attribute.name %>, :<%= attribute.type %><%= attribute.inject_options %>
|
|
|
+ <%- if attribute.has_index? -%>
|
|
|
+ add_index :<%= table_name %>, :<%= attribute.index_name %><%= attribute.inject_index_options %>
|
|
|
+ <%- end -%>
|
|
|
+ <%- end -%>
|
|
|
+<%- end -%>
|
|
|
+ end
|
|
|
+<%- elsif migration_action == 'join' -%>
|
|
|
+ def change
|
|
|
+<%# Begin Zammad customization -%>
|
|
|
+ # return if it's a new setup
|
|
|
+ return if !Setting.exists?(name: 'system_init_done')
|
|
|
+<%# End Zammad customization -%>
|
|
|
+ create_join_table :<%= join_tables.first %>, :<%= join_tables.second %> do |t|
|
|
|
+ <%- attributes.each do |attribute| -%>
|
|
|
+ <%- if attribute.reference? -%>
|
|
|
+ t.references :<%= attribute.name %><%= attribute.inject_options %><%= foreign_key_type %>
|
|
|
+ <%- elsif !attribute.virtual? -%>
|
|
|
+ <%= '# ' unless attribute.has_index? -%>t.index <%= attribute.index_name %><%= attribute.inject_index_options %>
|
|
|
+ <%- end -%>
|
|
|
+ <%- end -%>
|
|
|
+ end
|
|
|
+ end
|
|
|
+<%- else -%>
|
|
|
+ def change
|
|
|
+<%# Begin Zammad customization -%>
|
|
|
+ # return if it's a new setup
|
|
|
+ return if !Setting.exists?(name: 'system_init_done')
|
|
|
+<%# End Zammad customization -%>
|
|
|
+<% attributes.each do |attribute| -%>
|
|
|
+<%- if migration_action -%>
|
|
|
+ <%- if attribute.reference? -%>
|
|
|
+ remove_reference :<%= table_name %>, :<%= attribute.name %><%= attribute.inject_options %><%= foreign_key_type %>
|
|
|
+ <%- else -%>
|
|
|
+ <%- if attribute.has_index? -%>
|
|
|
+ remove_index :<%= table_name %>, :<%= attribute.index_name %><%= attribute.inject_index_options %>
|
|
|
+ <%- end -%>
|
|
|
+ <%- if !attribute.virtual? -%>
|
|
|
+ remove_column :<%= table_name %>, :<%= attribute.name %>, :<%= attribute.type %><%= attribute.inject_options %>
|
|
|
+ <%- end -%>
|
|
|
+ <%- end -%>
|
|
|
+<%- end -%>
|
|
|
+<%- end -%>
|
|
|
+ end
|
|
|
+<%- end -%>
|
|
|
+end
|