Sha256: 1471932ce8a5b3ed4988b4355f069d3b394e953b94cae0a06eb9c57f90df0e88
Contents?: true
Size: 1.53 KB
Versions: 2
Compression:
Stored size: 1.53 KB
Contents
class MigrateTranslateable<%= table_name.camelize + field_name.camelize %> < ActiveRecord::Migration<%= migration_version %> def change reversible do |dir| dir.up do add_column :<%= table_name %>, :<%= field_name + '_t' %>, :jsonb, null: false, default: {} execute <<-SQL UPDATE <%= table_name %> AS m1 SET <%= field_name + '_t' %> = ( SELECT row_to_json(t) FROM ( SELECT <%= field_name %> AS <%= locale %> FROM <%= table_name %> AS m2 WHERE m1.id = m2.id ) t )::jsonb; SQL remove_column :<%= table_name %>, :<%= field_name %> rename_column :<%= table_name %>, :<%= field_name + '_t' %>, :<%= field_name %> <% if index_exists?(table_name, field_name) %> add_index :<%= table_name %>, :<%= field_name %>, using: :gin <% end %> end dir.down do add_column :<%= table_name %>, :<%= field_name + '_t' %>, <%= field_type || ':string' %>, null: false, default: '' execute <<-SQL UPDATE <%= table_name %> AS m1 SET <%= field_name + '_t' %> = ( SELECT <%= field_name %>->>'<%= locale %>' AS <%= field_name %> FROM <%= table_name %> AS m2 WHERE m1.id = m2.id ); SQL remove_column :<%= table_name %>, :<%= field_name %> rename_column :<%= table_name %>, :<%= field_name + '_t' %>, :<%= field_name %> <% if index_exists?(table_name, field_name) %> add_index :<%= table_name %>, :<%= field_name %> <% end %> end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
translateable-0.1.8 | lib/generators/translateable/templates/migration.rb.erb |
translateable-0.1.7 | lib/generators/translateable/templates/migration.rb.erb |