departure 6.7.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +5 -14
  3. data/.gitignore +1 -0
  4. data/.rubocop.yml +1 -1
  5. data/Appraisals +4 -24
  6. data/CHANGELOG.md +15 -1
  7. data/Gemfile +6 -1
  8. data/Gemfile.lock +108 -86
  9. data/README.md +8 -0
  10. data/Rakefile +9 -0
  11. data/bin/rails +24 -0
  12. data/departure.gemspec +3 -3
  13. data/gemfiles/rails_7_0.gemfile +8 -2
  14. data/gemfiles/rails_7_0.gemfile.lock +182 -131
  15. data/gemfiles/rails_7_1.gemfile +7 -2
  16. data/gemfiles/rails_7_1.gemfile.lock +156 -140
  17. data/gemfiles/{ruby_2.7_rails_6_0.gemfile → rails_7_2.gemfile} +7 -3
  18. data/gemfiles/rails_7_2.gemfile.lock +288 -0
  19. data/gemfiles/{rails_6_0.gemfile → rails_8_0.gemfile} +6 -2
  20. data/gemfiles/rails_8_0.gemfile.lock +285 -0
  21. data/lib/active_record/connection_adapters/for_alter.rb +4 -17
  22. data/lib/active_record/connection_adapters/patch_connection_handling.rb +18 -0
  23. data/lib/active_record/connection_adapters/percona_adapter.rb +9 -56
  24. data/lib/active_record/connection_adapters/rails_7_2_departure_adapter.rb +215 -0
  25. data/lib/active_record/connection_adapters/rails_8_0_departure_adapter.rb +293 -0
  26. data/lib/departure/command.rb +6 -2
  27. data/lib/departure/configuration.rb +2 -1
  28. data/lib/departure/migration.rb +1 -5
  29. data/lib/departure/rails_adapter.rb +146 -0
  30. data/lib/departure/rails_patches/active_record_migrator_with_advisory_lock_patch.rb +25 -0
  31. data/lib/departure/runner.rb +24 -4
  32. data/lib/departure/version.rb +1 -1
  33. data/lib/departure.rb +2 -5
  34. data/lib/lhm/column_with_sql.rb +1 -8
  35. data/test_database.rb +2 -6
  36. metadata +18 -47
  37. data/gemfiles/rails_6_0.gemfile.lock +0 -238
  38. data/gemfiles/rails_6_1.gemfile +0 -10
  39. data/gemfiles/rails_6_1.gemfile.lock +0 -241
  40. data/gemfiles/ruby_2.7_rails_6_0.gemfile.lock +0 -239
  41. data/gemfiles/ruby_2.7_rails_6_1.gemfile +0 -11
  42. data/gemfiles/ruby_2.7_rails_6_1.gemfile.lock +0 -242
  43. data/gemfiles/ruby_2.7_rails_7_0.gemfile +0 -11
  44. data/gemfiles/ruby_2.7_rails_7_0.gemfile.lock +0 -241
  45. data/gemfiles/ruby_2.7_rails_7_1.gemfile +0 -11
  46. data/gemfiles/ruby_2.7_rails_7_1.gemfile.lock +0 -275
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 20a21cad1f7573b67e0d97621bec0ad444df55107245cf60e723d1888866f6f0
4
- data.tar.gz: 2be02cb3f5679f7f563acdfe917bd4f59273e39428bc9abf1f25aa2ca44b1f66
3
+ metadata.gz: c90b332f5ca8002ae23bedaab9b368f2aa89c103ab287aa593f5563901e9bb10
4
+ data.tar.gz: 46c52d6ce29dda0c0358cca5da19bfd5ebbe327e626c3c4c332fa7189df17759
5
5
  SHA512:
6
- metadata.gz: 78935d84d7ed9a2598f9a951ddf59f35a2b174dd8980e76b6186e9959c611ad8dee59242d29efcce366a8fde2b028feeb59fa2667fd7a155ada61c386aa4d3cd
7
- data.tar.gz: 2ac8a86463173ec2cf7c1a2da87432271a2fa759db919ff825da8cad1f6bded9ee8a8e7e47fc1c85754e19fea18ad7c2093c0fa23ef1a85b26120a943fca2cf5
6
+ metadata.gz: dd21cf4f7b78ea979a92424540dde3a0e8bad9d1acf891f334352e5e6f9cc372d0c4fa897d9afb88d1cb282504a65895c00a87b467a52f6ca2423501c7f68af0
7
+ data.tar.gz: 4b9b1112c42fd3b823eeb613bbde33ec596da1a7b2e1371ef2f87960b60a4c40a21a7d43bd2222269b2a8e71bd00c91bfa5d044ff5c2dce489cc299473b73a22
@@ -8,23 +8,14 @@ jobs:
8
8
  fail-fast: false
9
9
  matrix:
10
10
  ruby:
11
- - 3.0
12
- - 3.1
13
11
  - 3.2
14
12
  - 3.3
13
+ - 3.4
15
14
  gemfile:
16
- - gemfiles/rails_6_1.gemfile
17
15
  - gemfiles/rails_7_0.gemfile
18
16
  - gemfiles/rails_7_1.gemfile
19
- include:
20
- - ruby: 2.7
21
- gemfile: gemfiles/ruby_2.7_rails_6_0.gemfile
22
- - ruby: 2.7
23
- gemfile: gemfiles/ruby_2.7_rails_6_1.gemfile
24
- - ruby: 2.7
25
- gemfile: gemfiles/ruby_2.7_rails_7_0.gemfile
26
- - ruby: 2.7
27
- gemfile: gemfiles/ruby_2.7_rails_7_1.gemfile
17
+ - gemfiles/rails_7_2.gemfile
18
+ - gemfiles/rails_8_0.gemfile
28
19
  env:
29
20
  PERCONA_DB_USER: root
30
21
  PERCONA_DB_PASSWORD: root
@@ -52,12 +43,12 @@ jobs:
52
43
  env:
53
44
  PERCONA_DB_USER: root
54
45
  PERCONA_DB_PASSWORD: root
55
- BUNDLE_GEMFILE: gemfiles/ruby_2.7_rails_6_0.gemfile
46
+ BUNDLE_GEMFILE: gemfiles/rails_7_1.gemfile
56
47
  runs-on: ubuntu-latest
57
48
  steps:
58
49
  - uses: actions/checkout@v4
59
50
  - uses: ruby/setup-ruby@v1
60
51
  with:
61
- ruby-version: 2.7
52
+ ruby-version: 3.3
62
53
  bundler-cache: true
63
54
  - run: bundle exec rubocop --parallel
data/.gitignore CHANGED
@@ -11,3 +11,4 @@ tags
11
11
  departure_error.log
12
12
  .ruby-version
13
13
  .idea/
14
+ spec/dummy/log/
data/.rubocop.yml CHANGED
@@ -6,7 +6,7 @@ require:
6
6
  - rubocop-performance
7
7
 
8
8
  AllCops:
9
- TargetRubyVersion: 2.4
9
+ TargetRubyVersion: 3.4.x
10
10
 
11
11
  Metrics/AbcSize:
12
12
  Enabled: false
data/Appraisals CHANGED
@@ -1,11 +1,3 @@
1
- appraise 'rails-6-0' do
2
- gem 'rails', '6.0.6.1'
3
- end
4
-
5
- appraise 'rails-6-1' do
6
- gem 'rails', '6.1.7.6'
7
- end
8
-
9
1
  appraise 'rails-7-0' do
10
2
  gem 'rails', '7.0.8'
11
3
  end
@@ -14,22 +6,10 @@ appraise 'rails-7-1' do
14
6
  gem 'rails', '7.1.3'
15
7
  end
16
8
 
17
- appraise 'ruby-2.7-rails-6-0' do
18
- gem 'rails', '6.0.6.1'
19
- gem 'nokogiri', '< 1.16'
20
- end
21
-
22
- appraise 'ruby-2.7-rails-6-1' do
23
- gem 'rails', '6.1.7.6'
24
- gem 'nokogiri', '< 1.16'
9
+ appraise 'rails-7-2' do
10
+ gem 'rails', '7.2.2.1'
25
11
  end
26
12
 
27
- appraise 'ruby-2.7-rails-7-0' do
28
- gem 'rails', '7.0.8'
29
- gem 'nokogiri', '< 1.16'
30
- end
31
-
32
- appraise 'ruby-2.7-rails-7-1' do
33
- gem 'rails', '7.1.3'
34
- gem 'nokogiri', '< 1.16'
13
+ appraise 'rails-8-0' do
14
+ gem 'rails', '8.0.2.1'
35
15
  end
data/CHANGELOG.md CHANGED
@@ -4,7 +4,21 @@ This project adheres to [Semantic Versioning](http://semver.org/).
4
4
 
5
5
  Please follow the format in [Keep a Changelog](http://keepachangelog.com/)
6
6
 
7
- ## [Unreleased]
7
+ ## [7.0.0] - 2025-08-21
8
+
9
+ - Drop Ruby 3.1 support. Add >= 3.2 ruby support in gemspec. EOL for 3.1.0 was 2025-03-31
10
+ - Drop Rails 6.1 support. Add >= 6.2 rails support in gemspec. EOL for 6.1.0 was 2024-10-01
11
+ - Add Rails 8.0 support
12
+
13
+ ## [6.8.0] - 2025-03-31
14
+
15
+ - Drop Ruby 3.0 support in specs
16
+ - Create dummy application in specs, migrate fixtures to that application
17
+ - Create a `bin/rails` command that loads the database from the dummy application
18
+ - Create a RailsAdapter that will handle creating connections inside of different versions of rails
19
+ - Implement a Rails72DeparatureAdapater that handles the differences between Rails 7.2 and other rails versions
20
+ - Implement a ActiveRecordMigratorWithAdvisoryLock patch for ActiveRecord versions 7.1 and 7.2 to prevent ConcurrentMigrationErrors
21
+ - Implement a configuration option `disable_rails_advisory_lock_patch` to disable the ActiveRecordMigratorWithAdvisoryLock patch in our gem
8
22
 
9
23
  ## [6.7.0] - 2024-02-20
10
24
 
data/Gemfile CHANGED
@@ -2,6 +2,11 @@ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
4
 
5
+ gem 'base64'
5
6
  gem 'codeclimate-test-reporter', '~> 1.0.3', group: :test, require: nil
6
- gem 'rubocop', '~> 1.60.2', require: false
7
+ gem 'lhm'
8
+ gem 'logger'
9
+ gem 'mutex_m', require: false
10
+ gem 'rubocop', '~> 1.74.0', require: false
7
11
  gem 'rubocop-performance', '~> 1.20.2', require: false
12
+ gem 'zeitwerk', '< 2.7.0'
data/Gemfile.lock CHANGED
@@ -1,196 +1,218 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- departure (6.7.0)
5
- activerecord (>= 6.0.0, < 7.2.0, != 7.0.0)
4
+ departure (7.0.0)
5
+ activerecord (>= 7.0.1)
6
6
  mysql2 (>= 0.4.0, < 0.6.0)
7
- railties (>= 6.0.0, < 7.2.0, != 7.0.0)
7
+ railties (>= 7.0.1)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- actionpack (7.1.3)
13
- actionview (= 7.1.3)
14
- activesupport (= 7.1.3)
12
+ actionpack (8.0.2.1)
13
+ actionview (= 8.0.2.1)
14
+ activesupport (= 8.0.2.1)
15
15
  nokogiri (>= 1.8.5)
16
- racc
17
16
  rack (>= 2.2.4)
18
17
  rack-session (>= 1.0.1)
19
18
  rack-test (>= 0.6.3)
20
19
  rails-dom-testing (~> 2.2)
21
20
  rails-html-sanitizer (~> 1.6)
22
- actionview (7.1.3)
23
- activesupport (= 7.1.3)
21
+ useragent (~> 0.16)
22
+ actionview (8.0.2.1)
23
+ activesupport (= 8.0.2.1)
24
24
  builder (~> 3.1)
25
25
  erubi (~> 1.11)
26
26
  rails-dom-testing (~> 2.2)
27
27
  rails-html-sanitizer (~> 1.6)
28
- activemodel (7.1.3)
29
- activesupport (= 7.1.3)
30
- activerecord (7.1.3)
31
- activemodel (= 7.1.3)
32
- activesupport (= 7.1.3)
28
+ activemodel (8.0.2.1)
29
+ activesupport (= 8.0.2.1)
30
+ activerecord (8.0.2.1)
31
+ activemodel (= 8.0.2.1)
32
+ activesupport (= 8.0.2.1)
33
33
  timeout (>= 0.4.0)
34
- activesupport (7.1.3)
34
+ activesupport (8.0.2.1)
35
35
  base64
36
+ benchmark (>= 0.3)
36
37
  bigdecimal
37
- concurrent-ruby (~> 1.0, >= 1.0.2)
38
+ concurrent-ruby (~> 1.0, >= 1.3.1)
38
39
  connection_pool (>= 2.2.5)
39
40
  drb
40
41
  i18n (>= 1.6, < 2)
42
+ logger (>= 1.4.2)
41
43
  minitest (>= 5.1)
42
- mutex_m
43
- tzinfo (~> 2.0)
44
+ securerandom (>= 0.3)
45
+ tzinfo (~> 2.0, >= 2.0.5)
46
+ uri (>= 0.13.1)
44
47
  appraisal (2.4.1)
45
48
  bundler
46
49
  rake
47
50
  thor (>= 0.14.0)
48
- ast (2.4.2)
51
+ ast (2.4.3)
49
52
  base64 (0.2.0)
50
- bigdecimal (3.1.6)
51
- builder (3.2.4)
52
- byebug (11.1.3)
53
+ benchmark (0.4.0)
54
+ bigdecimal (3.1.9)
55
+ builder (3.3.0)
56
+ byebug (12.0.0)
53
57
  climate_control (0.0.4)
54
58
  activesupport (>= 3.0)
55
59
  codeclimate-test-reporter (1.0.9)
56
60
  simplecov (<= 0.13)
57
61
  coderay (1.1.3)
58
- concurrent-ruby (1.2.3)
59
- connection_pool (2.4.1)
62
+ concurrent-ruby (1.3.5)
63
+ connection_pool (2.5.0)
60
64
  crass (1.0.6)
61
- diff-lcs (1.5.1)
65
+ date (3.4.1)
66
+ diff-lcs (1.6.1)
62
67
  docile (1.1.5)
63
- drb (2.2.0)
64
- ruby2_keywords
65
- erubi (1.12.0)
66
- i18n (1.14.1)
68
+ drb (2.2.1)
69
+ erubi (1.13.1)
70
+ i18n (1.14.7)
67
71
  concurrent-ruby (~> 1.0)
68
- io-console (0.7.2)
69
- irb (1.11.2)
70
- rdoc
72
+ io-console (0.8.0)
73
+ irb (1.15.1)
74
+ pp (>= 0.6.0)
75
+ rdoc (>= 4.0.0)
71
76
  reline (>= 0.4.2)
72
- json (2.7.1)
73
- language_server-protocol (3.17.0.3)
74
- loofah (2.22.0)
77
+ json (2.10.2)
78
+ language_server-protocol (3.17.0.4)
79
+ lhm (2.2.0)
80
+ lint_roller (1.1.0)
81
+ logger (1.7.0)
82
+ loofah (2.24.0)
75
83
  crass (~> 1.0.2)
76
84
  nokogiri (>= 1.12.0)
77
- method_source (1.0.0)
78
- minitest (5.22.2)
79
- mutex_m (0.2.0)
85
+ method_source (1.1.0)
86
+ minitest (5.25.5)
87
+ mutex_m (0.3.0)
80
88
  mysql2 (0.5.6)
81
- nokogiri (1.16.2-arm64-darwin)
89
+ nokogiri (1.18.7-arm64-darwin)
82
90
  racc (~> 1.4)
83
- nokogiri (1.16.2-x86_64-linux)
91
+ nokogiri (1.18.7-x86_64-linux-gnu)
84
92
  racc (~> 1.4)
85
- parallel (1.24.0)
86
- parser (3.3.0.5)
93
+ parallel (1.26.3)
94
+ parser (3.3.7.4)
87
95
  ast (~> 2.4.1)
88
96
  racc
89
- pry (0.14.2)
97
+ pp (0.6.2)
98
+ prettyprint
99
+ prettyprint (0.2.0)
100
+ prism (1.4.0)
101
+ pry (0.15.2)
90
102
  coderay (~> 1.1)
91
103
  method_source (~> 1.0)
92
- pry-byebug (3.10.1)
93
- byebug (~> 11.0)
94
- pry (>= 0.13, < 0.15)
95
- psych (5.1.2)
104
+ pry-byebug (3.11.0)
105
+ byebug (~> 12.0)
106
+ pry (>= 0.13, < 0.16)
107
+ psych (5.2.3)
108
+ date
96
109
  stringio
97
- racc (1.7.3)
98
- rack (3.0.9)
99
- rack-session (2.0.0)
110
+ racc (1.8.1)
111
+ rack (3.1.12)
112
+ rack-session (2.1.0)
113
+ base64 (>= 0.1.0)
100
114
  rack (>= 3.0.0)
101
- rack-test (2.1.0)
115
+ rack-test (2.2.0)
102
116
  rack (>= 1.3)
103
- rackup (2.1.0)
117
+ rackup (2.2.1)
104
118
  rack (>= 3)
105
- webrick (~> 1.8)
106
119
  rails-dom-testing (2.2.0)
107
120
  activesupport (>= 5.0.0)
108
121
  minitest
109
122
  nokogiri (>= 1.6)
110
- rails-html-sanitizer (1.6.0)
123
+ rails-html-sanitizer (1.6.2)
111
124
  loofah (~> 2.21)
112
- nokogiri (~> 1.14)
113
- railties (7.1.3)
114
- actionpack (= 7.1.3)
115
- activesupport (= 7.1.3)
116
- irb
125
+ nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
126
+ railties (8.0.2.1)
127
+ actionpack (= 8.0.2.1)
128
+ activesupport (= 8.0.2.1)
129
+ irb (~> 1.13)
117
130
  rackup (>= 1.0.0)
118
131
  rake (>= 12.2)
119
132
  thor (~> 1.0, >= 1.2.2)
120
133
  zeitwerk (~> 2.6)
121
134
  rainbow (3.1.1)
122
- rake (13.1.0)
123
- rdoc (6.6.2)
135
+ rake (13.2.1)
136
+ rdoc (6.13.1)
124
137
  psych (>= 4.0.0)
125
- regexp_parser (2.9.0)
126
- reline (0.4.2)
138
+ regexp_parser (2.10.0)
139
+ reline (0.6.0)
127
140
  io-console (~> 0.5)
128
- rexml (3.2.6)
129
141
  rspec (3.13.0)
130
142
  rspec-core (~> 3.13.0)
131
143
  rspec-expectations (~> 3.13.0)
132
144
  rspec-mocks (~> 3.13.0)
133
- rspec-core (3.13.0)
145
+ rspec-core (3.13.3)
134
146
  rspec-support (~> 3.13.0)
135
- rspec-expectations (3.13.0)
147
+ rspec-expectations (3.13.3)
136
148
  diff-lcs (>= 1.2.0, < 2.0)
137
149
  rspec-support (~> 3.13.0)
138
- rspec-its (1.3.0)
150
+ rspec-its (1.3.1)
139
151
  rspec-core (>= 3.0.0)
140
152
  rspec-expectations (>= 3.0.0)
141
- rspec-mocks (3.13.0)
153
+ rspec-mocks (3.13.2)
142
154
  diff-lcs (>= 1.2.0, < 2.0)
143
155
  rspec-support (~> 3.13.0)
144
- rspec-support (3.13.0)
145
- rubocop (1.60.2)
156
+ rspec-support (3.13.2)
157
+ rubocop (1.74.0)
146
158
  json (~> 2.3)
147
- language_server-protocol (>= 3.17.0)
159
+ language_server-protocol (~> 3.17.0.2)
160
+ lint_roller (~> 1.1.0)
148
161
  parallel (~> 1.10)
149
162
  parser (>= 3.3.0.2)
150
163
  rainbow (>= 2.2.2, < 4.0)
151
- regexp_parser (>= 1.8, < 3.0)
152
- rexml (>= 3.2.5, < 4.0)
153
- rubocop-ast (>= 1.30.0, < 2.0)
164
+ regexp_parser (>= 2.9.3, < 3.0)
165
+ rubocop-ast (>= 1.38.0, < 2.0)
154
166
  ruby-progressbar (~> 1.7)
155
- unicode-display_width (>= 2.4.0, < 3.0)
156
- rubocop-ast (1.30.0)
157
- parser (>= 3.2.1.0)
167
+ unicode-display_width (>= 2.4.0, < 4.0)
168
+ rubocop-ast (1.43.0)
169
+ parser (>= 3.3.7.2)
170
+ prism (~> 1.4)
158
171
  rubocop-performance (1.20.2)
159
172
  rubocop (>= 1.48.1, < 2.0)
160
173
  rubocop-ast (>= 1.30.0, < 2.0)
161
174
  ruby-progressbar (1.13.0)
162
- ruby2_keywords (0.0.5)
175
+ securerandom (0.4.1)
163
176
  simplecov (0.13.0)
164
177
  docile (~> 1.1.0)
165
178
  json (>= 1.8, < 3)
166
179
  simplecov-html (~> 0.10.0)
167
180
  simplecov-html (0.10.2)
168
- stringio (3.1.0)
169
- thor (1.3.0)
170
- timeout (0.4.1)
181
+ stringio (3.1.6)
182
+ thor (1.3.2)
183
+ timeout (0.4.3)
171
184
  tzinfo (2.0.6)
172
185
  concurrent-ruby (~> 1.0)
173
- unicode-display_width (2.5.0)
174
- webrick (1.8.1)
175
- zeitwerk (2.6.13)
186
+ unicode-display_width (3.1.4)
187
+ unicode-emoji (~> 4.0, >= 4.0.4)
188
+ unicode-emoji (4.0.4)
189
+ uri (1.0.3)
190
+ useragent (0.16.11)
191
+ zeitwerk (2.6.18)
176
192
 
177
193
  PLATFORMS
178
194
  arm64-darwin-21
179
195
  arm64-darwin-22
180
196
  arm64-darwin-23
197
+ arm64-darwin-24
181
198
  x86_64-linux
182
199
 
183
200
  DEPENDENCIES
184
201
  appraisal (~> 2.4.1)
202
+ base64
185
203
  climate_control (~> 0.0.3)
186
204
  codeclimate-test-reporter (~> 1.0.3)
187
205
  departure!
206
+ lhm
207
+ logger
208
+ mutex_m
188
209
  pry-byebug
189
210
  rake (>= 10.0)
190
211
  rspec (~> 3.4, >= 3.4.0)
191
212
  rspec-its (~> 1.2)
192
- rubocop (~> 1.60.2)
213
+ rubocop (~> 1.74.0)
193
214
  rubocop-performance (~> 1.20.2)
215
+ zeitwerk (< 2.7.0)
194
216
 
195
217
  BUNDLED WITH
196
- 2.4.22
218
+ 2.6.6
data/README.md CHANGED
@@ -147,6 +147,14 @@ end
147
147
  It's strongly recommended to name it after this gems name, such as
148
148
  `config/initializers/departure.rb`
149
149
 
150
+ ### Configuration Options
151
+
152
+ All configuration options are configurable from the `Departure.configure` block example below
153
+
154
+ |Option|Default|What it Controls|
155
+ |---|---|---|
156
+ |disable_rails_advisory_lock_patch|false|When truthy, disables a patch in at least rails 7.1 and 7.2 where rails throws ConcurrentMigrationErrors due to the inability to release the advisory lock in migrations|
157
+
150
158
  ### Disable on per-migration basis
151
159
 
152
160
  Departure gem is enabled by default.
data/Rakefile CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'bundler/gem_tasks'
2
2
  require 'rspec/core/rake_task'
3
3
 
4
+ require 'logger'
4
5
  require './configuration'
5
6
  require './test_database'
6
7
 
@@ -12,6 +13,14 @@ namespace :db do
12
13
  desc 'Create the test database'
13
14
  task :create do
14
15
  config = Configuration.new
16
+
17
+ ActiveRecord::Base.establish_connection(
18
+ adapter: 'mysql2',
19
+ host: config['hostname'],
20
+ username: config['username'],
21
+ password: config['password']
22
+ )
23
+
15
24
  TestDatabase.new(config).setup_test_database
16
25
  end
17
26
  end
data/bin/rails ADDED
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ ENV['RAILS_ENV'] ||= 'development'
4
+
5
+ APP_PATH = File.expand_path('../spec/dummy/config/application', __dir__)
6
+ require_relative '../spec/dummy/config/boot'
7
+ require 'rake'
8
+ require 'departure'
9
+
10
+ # Load the rails application
11
+ require APP_PATH
12
+
13
+ begin
14
+ Rails.application.load_tasks
15
+ Rake::Task['db:create'].invoke
16
+
17
+ ENV['SCHEMA'] = File.expand_path('../spec/dummy/db/base_schema.rb', __dir__)
18
+ Rake::Task['db:schema:load'].invoke
19
+ rescue StandardError => e
20
+ puts "there was an error creating your database #{e}"
21
+ exit 1
22
+ end
23
+
24
+ require 'rails/commands'
data/departure.gemspec CHANGED
@@ -19,10 +19,10 @@ Gem::Specification.new do |spec|
19
19
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
20
20
  spec.require_paths = ['lib']
21
21
 
22
- spec.required_ruby_version = '>= 2.7.0'
22
+ spec.required_ruby_version = '>= 3.2.0'
23
23
 
24
- spec.add_runtime_dependency 'railties', '>= 6.0.0', '!= 7.0.0', '< 7.2.0'
25
- spec.add_runtime_dependency 'activerecord', '>= 6.0.0', '!= 7.0.0', '< 7.2.0'
24
+ spec.add_runtime_dependency 'railties', '>= 7.0.1'
25
+ spec.add_runtime_dependency 'activerecord', '>= 7.0.1'
26
26
  spec.add_runtime_dependency 'mysql2', '>= 0.4.0', '< 0.6.0'
27
27
 
28
28
  spec.add_development_dependency 'appraisal', '~> 2.4.1'
@@ -2,9 +2,15 @@
2
2
 
3
3
  source 'https://rubygems.org'
4
4
 
5
+ gem 'base64'
6
+ gem 'bigdecimal'
5
7
  gem 'codeclimate-test-reporter', '~> 1.0.3', group: :test, require: nil
6
- gem 'rails', '7.0.8'
7
- gem 'rubocop', '~> 1.60.2', require: false
8
+ gem 'lhm'
9
+ gem 'logger'
10
+ gem 'mutex_m', require: false
11
+ gem 'rails', '> 7.0.8'
12
+ gem 'rubocop', '~> 1.74.0', require: false
8
13
  gem 'rubocop-performance', '~> 1.20.2', require: false
14
+ gem 'zeitwerk', '< 2.7.0'
9
15
 
10
16
  gemspec path: '../'