12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- class ChangeSqliteBooleansTo0And1 < ActiveRecord::Migration[5.2]
-
- COLUMNS = {
- AuthSource => ['onthefly_register', 'tls'],
- CustomFieldEnumeration => ['active'],
- CustomField => ['is_required', 'is_for_all', 'is_filter', 'searchable', 'editable', 'visible', 'multiple'],
- EmailAddress => ['is_default', 'notify'],
- Enumeration => ['is_default', 'active'],
- Import => ['finished'],
- IssueStatus => ['is_closed'],
- Issue => ['is_private'],
- Journal => ['private_notes'],
- Member => ['mail_notification'],
- Message => ['locked'],
- Project => ['is_public', 'inherit_members'],
- Repository => ['is_default'],
- Role => ['assignable', 'all_roles_managed'],
- Tracker => ['is_in_chlog', 'is_in_roadmap'],
- UserPreference => ['hide_mail'],
- User => ['admin', 'must_change_passwd'],
- WikiPage => ['protected'],
- WorkflowRule => ['assignee', 'author'],
- }
-
- def up
- if ActiveRecord::Base.connection.adapter_name =~ /sqlite/i
- COLUMNS.each do |klass, columns|
- columns.each do |column|
- klass.where("#{column} = 't'").update_all(column => 1)
- klass.where("#{column} = 'f'").update_all(column => 0)
- end
- end
- end
- end
-
- def down
- if ActiveRecord::Base.connection.adapter_name =~ /sqlite/i
- COLUMNS.each do |klass, columns|
- columns.each do |column|
- klass.where("#{column} = 1").update_all(column => 't')
- klass.where("#{column} = 0").update_all(column => 'f')
- end
- end
- end
- end
- end
|