1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
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 /sqlite/i.match?(ActiveRecord::Base.connection.adapter_name)
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 /sqlite/i.match?(ActiveRecord::Base.connection.adapter_name)
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
|