You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

20180923091603_change_sqlite_booleans_default.rb 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. class ChangeSqliteBooleansDefault < ActiveRecord::Migration[5.2]
  2. DEFAULTS = {
  3. "auth_sources" => {
  4. "onthefly_register" => false,
  5. "tls" => false
  6. },
  7. "custom_field_enumerations" => {
  8. "active" => true
  9. },
  10. "custom_fields" => {
  11. "is_required" => false,
  12. "is_for_all" => false,
  13. "is_filter" => false,
  14. "searchable" => false,
  15. "editable" => true,
  16. "visible" => true,
  17. "multiple" => false
  18. },
  19. "email_addresses" => {
  20. "is_default" => false,
  21. "notify" => true
  22. },
  23. "enumerations" => {
  24. "is_default" => false,
  25. "active" => true
  26. },
  27. "imports" => {
  28. "finished" => false
  29. },
  30. "issue_statuses" => {
  31. "is_closed" => false
  32. },
  33. "issues" => {
  34. "is_private" => false
  35. },
  36. "journals" => {
  37. "private_notes" => false
  38. },
  39. "members" => {
  40. "mail_notification" => false
  41. },
  42. "messages" => {
  43. "locked" => false
  44. },
  45. "projects" => {
  46. "is_public" => true,
  47. "inherit_members" => false
  48. },
  49. "repositories" => {
  50. "is_default" => false
  51. },
  52. "roles" => {
  53. "assignable" => true,
  54. "all_roles_managed" => true
  55. },
  56. "trackers" => {
  57. "is_in_chlog" => false,
  58. "is_in_roadmap" => true
  59. },
  60. "user_preferences" => {
  61. "hide_mail" => true
  62. },
  63. "users" => {
  64. "admin" => false,
  65. "must_change_passwd" => false
  66. },
  67. "wiki_pages" => {
  68. "protected" => false
  69. },
  70. "workflows" => {
  71. "assignee" => false,
  72. "author" => false
  73. }
  74. }
  75. def up
  76. if /sqlite/i.match?(ActiveRecord::Base.connection.adapter_name)
  77. DEFAULTS.each do |table, defaults|
  78. defaults.each do |column, value|
  79. # Reset default values for boolean column (t/f => 1/0)
  80. change_column_default(table, column, value)
  81. end
  82. end
  83. end
  84. end
  85. def down
  86. if /sqlite/i.match?(ActiveRecord::Base.connection.adapter_name)
  87. # Cannot restore default values as t/f
  88. raise ActiveRecord::IrreversibleMigration
  89. end
  90. end
  91. end