ros-apartment 2.11.0 → 3.2.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 (39) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +55 -8
  3. data/.ruby-version +1 -1
  4. data/Appraisals +106 -34
  5. data/CODE_OF_CONDUCT.md +71 -0
  6. data/Gemfile +15 -0
  7. data/README.md +52 -35
  8. data/Rakefile +40 -36
  9. data/{CHANGELOG.md → legacy_CHANGELOG.md} +5 -3
  10. data/lib/apartment/active_record/connection_handling.rb +18 -7
  11. data/lib/apartment/active_record/postgres/schema_dumper.rb +20 -0
  12. data/lib/apartment/active_record/postgresql_adapter.rb +23 -4
  13. data/lib/apartment/active_record/schema_migration.rb +1 -1
  14. data/lib/apartment/adapters/abstract_adapter.rb +1 -1
  15. data/lib/apartment/adapters/postgresql_adapter.rb +15 -19
  16. data/lib/apartment/adapters/trilogy_adapter.rb +29 -0
  17. data/lib/apartment/deprecation.rb +2 -5
  18. data/lib/apartment/log_subscriber.rb +21 -9
  19. data/lib/apartment/migrator.rb +6 -12
  20. data/lib/apartment/railtie.rb +6 -1
  21. data/lib/apartment/tasks/task_helper.rb +3 -1
  22. data/lib/apartment/version.rb +1 -1
  23. data/lib/apartment.rb +12 -16
  24. data/ros-apartment.gemspec +13 -32
  25. metadata +40 -246
  26. data/.circleci/config.yml +0 -78
  27. data/.github/ISSUE_TEMPLATE.md +0 -21
  28. data/.github/workflows/changelog.yml +0 -63
  29. data/.github/workflows/reviewdog.yml +0 -22
  30. data/.rubocop_todo.yml +0 -233
  31. data/.story_branch.yml +0 -5
  32. data/HISTORY.md +0 -496
  33. data/TODO.md +0 -50
  34. data/docker-compose.yml +0 -33
  35. data/gemfiles/rails_5_2.gemfile +0 -13
  36. data/gemfiles/rails_6_0.gemfile +0 -17
  37. data/gemfiles/rails_6_1.gemfile +0 -17
  38. data/gemfiles/rails_7_0.gemfile +0 -17
  39. data/gemfiles/rails_master.gemfile +0 -17
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ros-apartment
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.11.0
4
+ version: 3.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Brunner
8
8
  - Brad Robertson
9
9
  - Rui Baltazar
10
- autorequire:
10
+ - Mauricio Novelo
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2022-02-07 00:00:00.000000000 Z
13
+ date: 2025-01-09 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
@@ -18,328 +18,121 @@ dependencies:
18
18
  requirements:
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: 5.0.0
21
+ version: 6.1.0
22
22
  - - "<"
23
23
  - !ruby/object:Gem::Version
24
- version: '7.1'
24
+ version: '8.1'
25
25
  type: :runtime
26
26
  prerelease: false
27
27
  version_requirements: !ruby/object:Gem::Requirement
28
28
  requirements:
29
29
  - - ">="
30
30
  - !ruby/object:Gem::Version
31
- version: 5.0.0
31
+ version: 6.1.0
32
32
  - - "<"
33
33
  - !ruby/object:Gem::Version
34
- version: '7.1'
34
+ version: '8.1'
35
35
  - !ruby/object:Gem::Dependency
36
- name: parallel
37
- requirement: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - "<"
40
- - !ruby/object:Gem::Version
41
- version: '2.0'
42
- type: :runtime
43
- prerelease: false
44
- version_requirements: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - "<"
47
- - !ruby/object:Gem::Version
48
- version: '2.0'
49
- - !ruby/object:Gem::Dependency
50
- name: public_suffix
36
+ name: activesupport
51
37
  requirement: !ruby/object:Gem::Requirement
52
38
  requirements:
53
39
  - - ">="
54
40
  - !ruby/object:Gem::Version
55
- version: 2.0.5
41
+ version: 6.1.0
56
42
  - - "<"
57
43
  - !ruby/object:Gem::Version
58
- version: '5.0'
44
+ version: '8.1'
59
45
  type: :runtime
60
46
  prerelease: false
61
47
  version_requirements: !ruby/object:Gem::Requirement
62
48
  requirements:
63
49
  - - ">="
64
50
  - !ruby/object:Gem::Version
65
- version: 2.0.5
51
+ version: 6.1.0
66
52
  - - "<"
67
53
  - !ruby/object:Gem::Version
68
- version: '5.0'
54
+ version: '8.1'
69
55
  - !ruby/object:Gem::Dependency
70
- name: rack
56
+ name: parallel
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: 1.3.6
76
59
  - - "<"
77
60
  - !ruby/object:Gem::Version
78
- version: '3.0'
61
+ version: '2.0'
79
62
  type: :runtime
80
63
  prerelease: false
81
64
  version_requirements: !ruby/object:Gem::Requirement
82
65
  requirements:
83
- - - ">="
84
- - !ruby/object:Gem::Version
85
- version: 1.3.6
86
66
  - - "<"
87
67
  - !ruby/object:Gem::Version
88
- version: '3.0'
89
- - !ruby/object:Gem::Dependency
90
- name: appraisal
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: '2.2'
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: '2.2'
68
+ version: '2.0'
103
69
  - !ruby/object:Gem::Dependency
104
- name: bundler
70
+ name: public_suffix
105
71
  requirement: !ruby/object:Gem::Requirement
106
72
  requirements:
107
73
  - - ">="
108
74
  - !ruby/object:Gem::Version
109
- version: '1.3'
110
- - - "<"
75
+ version: 2.0.5
76
+ - - "<="
111
77
  - !ruby/object:Gem::Version
112
- version: '3.0'
113
- type: :development
78
+ version: 6.0.1
79
+ type: :runtime
114
80
  prerelease: false
115
81
  version_requirements: !ruby/object:Gem::Requirement
116
82
  requirements:
117
83
  - - ">="
118
84
  - !ruby/object:Gem::Version
119
- version: '1.3'
120
- - - "<"
121
- - !ruby/object:Gem::Version
122
- version: '3.0'
123
- - !ruby/object:Gem::Dependency
124
- name: guard-rspec
125
- requirement: !ruby/object:Gem::Requirement
126
- requirements:
127
- - - "~>"
128
- - !ruby/object:Gem::Version
129
- version: '4.2'
130
- type: :development
131
- prerelease: false
132
- version_requirements: !ruby/object:Gem::Requirement
133
- requirements:
134
- - - "~>"
85
+ version: 2.0.5
86
+ - - "<="
135
87
  - !ruby/object:Gem::Version
136
- version: '4.2'
88
+ version: 6.0.1
137
89
  - !ruby/object:Gem::Dependency
138
- name: pry
90
+ name: rack
139
91
  requirement: !ruby/object:Gem::Requirement
140
92
  requirements:
141
93
  - - ">="
142
94
  - !ruby/object:Gem::Version
143
- version: '0'
144
- type: :development
145
- prerelease: false
146
- version_requirements: !ruby/object:Gem::Requirement
147
- requirements:
148
- - - ">="
149
- - !ruby/object:Gem::Version
150
- version: '0'
151
- - !ruby/object:Gem::Dependency
152
- name: rake
153
- requirement: !ruby/object:Gem::Requirement
154
- requirements:
155
- - - "~>"
156
- - !ruby/object:Gem::Version
157
- version: '13.0'
158
- type: :development
159
- prerelease: false
160
- version_requirements: !ruby/object:Gem::Requirement
161
- requirements:
162
- - - "~>"
163
- - !ruby/object:Gem::Version
164
- version: '13.0'
165
- - !ruby/object:Gem::Dependency
166
- name: rspec
167
- requirement: !ruby/object:Gem::Requirement
168
- requirements:
169
- - - "~>"
170
- - !ruby/object:Gem::Version
171
- version: '3.4'
172
- type: :development
173
- prerelease: false
174
- version_requirements: !ruby/object:Gem::Requirement
175
- requirements:
176
- - - "~>"
177
- - !ruby/object:Gem::Version
178
- version: '3.4'
179
- - !ruby/object:Gem::Dependency
180
- name: rspec_junit_formatter
181
- requirement: !ruby/object:Gem::Requirement
182
- requirements:
183
- - - ">="
95
+ version: 1.3.6
96
+ - - "<"
184
97
  - !ruby/object:Gem::Version
185
- version: '0'
186
- type: :development
98
+ version: '4.0'
99
+ type: :runtime
187
100
  prerelease: false
188
101
  version_requirements: !ruby/object:Gem::Requirement
189
102
  requirements:
190
103
  - - ">="
191
- - !ruby/object:Gem::Version
192
- version: '0'
193
- - !ruby/object:Gem::Dependency
194
- name: rspec-rails
195
- requirement: !ruby/object:Gem::Requirement
196
- requirements:
197
- - - "~>"
198
- - !ruby/object:Gem::Version
199
- version: '3.4'
200
- type: :development
201
- prerelease: false
202
- version_requirements: !ruby/object:Gem::Requirement
203
- requirements:
204
- - - "~>"
205
- - !ruby/object:Gem::Version
206
- version: '3.4'
207
- - !ruby/object:Gem::Dependency
208
- name: rubocop
209
- requirement: !ruby/object:Gem::Requirement
210
- requirements:
211
- - - "~>"
212
- - !ruby/object:Gem::Version
213
- version: '0.93'
214
- type: :development
215
- prerelease: false
216
- version_requirements: !ruby/object:Gem::Requirement
217
- requirements:
218
- - - "~>"
219
- - !ruby/object:Gem::Version
220
- version: '0.93'
221
- - !ruby/object:Gem::Dependency
222
- name: rubocop-performance
223
- requirement: !ruby/object:Gem::Requirement
224
- requirements:
225
- - - "~>"
226
- - !ruby/object:Gem::Version
227
- version: '1.10'
228
- type: :development
229
- prerelease: false
230
- version_requirements: !ruby/object:Gem::Requirement
231
- requirements:
232
- - - "~>"
233
- - !ruby/object:Gem::Version
234
- version: '1.10'
235
- - !ruby/object:Gem::Dependency
236
- name: rubocop-rails
237
- requirement: !ruby/object:Gem::Requirement
238
- requirements:
239
- - - "~>"
240
- - !ruby/object:Gem::Version
241
- version: '2.1'
242
- type: :development
243
- prerelease: false
244
- version_requirements: !ruby/object:Gem::Requirement
245
- requirements:
246
- - - "~>"
247
- - !ruby/object:Gem::Version
248
- version: '2.1'
249
- - !ruby/object:Gem::Dependency
250
- name: rubocop-rspec
251
- requirement: !ruby/object:Gem::Requirement
252
- requirements:
253
- - - "~>"
254
- - !ruby/object:Gem::Version
255
- version: '1.44'
256
- type: :development
257
- prerelease: false
258
- version_requirements: !ruby/object:Gem::Requirement
259
- requirements:
260
- - - "~>"
261
- - !ruby/object:Gem::Version
262
- version: '1.44'
263
- - !ruby/object:Gem::Dependency
264
- name: mysql2
265
- requirement: !ruby/object:Gem::Requirement
266
- requirements:
267
- - - "~>"
268
- - !ruby/object:Gem::Version
269
- version: '0.5'
270
- type: :development
271
- prerelease: false
272
- version_requirements: !ruby/object:Gem::Requirement
273
- requirements:
274
- - - "~>"
275
- - !ruby/object:Gem::Version
276
- version: '0.5'
277
- - !ruby/object:Gem::Dependency
278
- name: pg
279
- requirement: !ruby/object:Gem::Requirement
280
- requirements:
281
- - - "~>"
282
- - !ruby/object:Gem::Version
283
- version: '1.2'
284
- type: :development
285
- prerelease: false
286
- version_requirements: !ruby/object:Gem::Requirement
287
- requirements:
288
- - - "~>"
289
- - !ruby/object:Gem::Version
290
- version: '1.2'
291
- - !ruby/object:Gem::Dependency
292
- name: sqlite3
293
- requirement: !ruby/object:Gem::Requirement
294
- requirements:
295
- - - "~>"
296
104
  - !ruby/object:Gem::Version
297
105
  version: 1.3.6
298
- type: :development
299
- prerelease: false
300
- version_requirements: !ruby/object:Gem::Requirement
301
- requirements:
302
- - - "~>"
106
+ - - "<"
303
107
  - !ruby/object:Gem::Version
304
- version: 1.3.6
108
+ version: '4.0'
305
109
  description: Apartment allows Rack applications to deal with database multitenancy
306
110
  through ActiveRecord
307
111
  email:
308
112
  - ryan@influitive.com
309
113
  - brad@influitive.com
310
114
  - rui.p.baltazar@gmail.com
115
+ - mauricio@campusesp.com
311
116
  executables: []
312
117
  extensions: []
313
118
  extra_rdoc_files: []
314
119
  files:
315
- - ".circleci/config.yml"
316
- - ".github/ISSUE_TEMPLATE.md"
317
- - ".github/workflows/changelog.yml"
318
- - ".github/workflows/reviewdog.yml"
319
120
  - ".gitignore"
320
121
  - ".pryrc"
321
122
  - ".rspec"
322
123
  - ".rubocop.yml"
323
- - ".rubocop_todo.yml"
324
124
  - ".ruby-version"
325
- - ".story_branch.yml"
326
125
  - Appraisals
327
- - CHANGELOG.md
126
+ - CODE_OF_CONDUCT.md
328
127
  - Gemfile
329
128
  - Guardfile
330
- - HISTORY.md
331
129
  - README.md
332
130
  - Rakefile
333
- - TODO.md
334
- - docker-compose.yml
335
- - gemfiles/rails_5_2.gemfile
336
- - gemfiles/rails_6_0.gemfile
337
- - gemfiles/rails_6_1.gemfile
338
- - gemfiles/rails_7_0.gemfile
339
- - gemfiles/rails_master.gemfile
131
+ - legacy_CHANGELOG.md
340
132
  - lib/apartment.rb
341
133
  - lib/apartment/active_record/connection_handling.rb
342
134
  - lib/apartment/active_record/internal_metadata.rb
135
+ - lib/apartment/active_record/postgres/schema_dumper.rb
343
136
  - lib/apartment/active_record/postgresql_adapter.rb
344
137
  - lib/apartment/active_record/schema_migration.rb
345
138
  - lib/apartment/adapters/abstract_adapter.rb
@@ -350,6 +143,7 @@ files:
350
143
  - lib/apartment/adapters/postgis_adapter.rb
351
144
  - lib/apartment/adapters/postgresql_adapter.rb
352
145
  - lib/apartment/adapters/sqlite3_adapter.rb
146
+ - lib/apartment/adapters/trilogy_adapter.rb
353
147
  - lib/apartment/console.rb
354
148
  - lib/apartment/custom_console.rb
355
149
  - lib/apartment/deprecation.rb
@@ -375,8 +169,9 @@ files:
375
169
  homepage: https://github.com/rails-on-services/apartment
376
170
  licenses:
377
171
  - MIT
378
- metadata: {}
379
- post_install_message:
172
+ metadata:
173
+ github_repo: ssh://github.com/rails-on-services/apartment
174
+ rubygems_mfa_required: 'true'
380
175
  rdoc_options: []
381
176
  require_paths:
382
177
  - lib
@@ -384,15 +179,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
384
179
  requirements:
385
180
  - - ">="
386
181
  - !ruby/object:Gem::Version
387
- version: '0'
182
+ version: '3.1'
388
183
  required_rubygems_version: !ruby/object:Gem::Requirement
389
184
  requirements:
390
185
  - - ">="
391
186
  - !ruby/object:Gem::Version
392
187
  version: '0'
393
188
  requirements: []
394
- rubygems_version: 3.1.6
395
- signing_key:
189
+ rubygems_version: 3.6.2
396
190
  specification_version: 4
397
191
  summary: A Ruby gem for managing database multitenancy. Apartment Gem drop in replacement
398
192
  test_files: []
data/.circleci/config.yml DELETED
@@ -1,78 +0,0 @@
1
- version: 2.1
2
-
3
- jobs:
4
- build:
5
- docker:
6
- - image: circleci/<< parameters.ruby_version >>
7
- - image: circleci/postgres:9.6.2-alpine
8
- - image: circleci/mysql:5.7
9
- environment:
10
- MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
11
- parameters:
12
- ruby_version:
13
- type: string
14
- gemfile:
15
- type: string
16
- environment:
17
- BUNDLE_GEMFILE: << parameters.gemfile >>
18
- steps:
19
- - checkout
20
- # Restore Cached Dependencies
21
- # - restore_cache:
22
- # keys:
23
- # - gem-cache-v1-{{ arch }}-{{ .Branch }}-{{ checksum "<< parameters.gemfile >>.lock" }}
24
- # - gem-cache-v1-{{ arch }}-{{ .Branch }}
25
- # - gem-cache-v1
26
-
27
- - run: bundle install --path vendor/bundle
28
-
29
- # - save_cache:
30
- # key: gem-cache-v1-{{ arch }}-{{ .Branch }}-{{ checksum "<< parameters.gemfile >>.lock" }}
31
- # paths:
32
- # - vendor/bundle
33
-
34
- - run:
35
- name: Install postgres client
36
- command: sudo apt install -y postgresql-client
37
-
38
- - run:
39
- name: Install mysql client
40
- command: sudo apt install -y default-mysql-client
41
-
42
- - run:
43
- name: Configure config database.yml
44
- command: bundle exec rake db:copy_credentials
45
-
46
- - run:
47
- name: wait for postgresql
48
- command: dockerize -wait tcp://localhost:5432 -timeout 1m
49
-
50
- - run:
51
- name: wait for mysql
52
- command: dockerize -wait tcp://localhost:3306 -timeout 1m
53
-
54
- - run:
55
- name: Database Setup
56
- command: |
57
- bundle exec rake db:test:prepare
58
-
59
- - run:
60
- name: Run tests
61
- command: bundle exec rspec --format progress --format RspecJunitFormatter -o ~/test-results/rspec/rspec.xml
62
-
63
- - store_test_results:
64
- path: ~/test-results/rspec/
65
-
66
- workflows:
67
- tests:
68
- jobs:
69
- - build:
70
- matrix:
71
- parameters:
72
- ruby_version: ["ruby:2.6-buster", "ruby:2.7-buster", "ruby:3.0-buster"]
73
- gemfile: ["gemfiles/rails_5_2.gemfile", "gemfiles/rails_6_0.gemfile", "gemfiles/rails_6_1.gemfile", "gemfiles/rails_7_0.gemfile"]
74
- exclude:
75
- - ruby_version: "ruby:3.0-buster"
76
- gemfile: "gemfiles/rails_5_2.gemfile"
77
- - ruby_version: "ruby:2.6-buster"
78
- gemfile: "gemfiles/rails_7_0.gemfile"
@@ -1,21 +0,0 @@
1
- ## Steps to reproduce
2
-
3
- ## Expected behavior
4
-
5
- ## Actual behavior
6
-
7
- ## System configuration
8
-
9
- <!-- Please let us know as far as you can. -->
10
-
11
- * Database: (Tell us what database and its version you use.)
12
-
13
- * Apartment version:
14
-
15
- * Apartment config (in `config/initializers/apartment.rb` or so):
16
-
17
- * `use_schemas`: (`true` or `false`)
18
-
19
- * Rails (or ActiveRecord) version:
20
-
21
- * Ruby version:
@@ -1,63 +0,0 @@
1
- name: Changelog
2
-
3
- on:
4
- pull_request:
5
- types: [closed]
6
-
7
- release:
8
- types: [published]
9
-
10
- issues:
11
- types: [closed, edited]
12
-
13
- jobs:
14
- generate_changelog:
15
- runs-on: ubuntu-latest
16
- name: Generate changelog for master branch
17
- steps:
18
- - uses: actions/checkout@v2
19
- with:
20
- fetch-depth: 0 # otherwise, you will failed to push refs to dest repo
21
-
22
- - name: Generate changelog
23
- uses: charmixer/auto-changelog-action@v1
24
- with:
25
- token: ${{ secrets.GITHUB_TOKEN }}
26
-
27
- - name: Commit files
28
- env:
29
- ACTION_EMAIL: action@github.com
30
- ACTION_USERNAME: GitHub Action
31
- run: |
32
- git config --local user.email "$ACTION_EMAIL"
33
- git config --local user.name "$ACTION_USERNAME"
34
- git add CHANGELOG.md && git commit -m 'Updated CHANGELOG.md' && echo ::set-env name=push::1 || echo "No changes to CHANGELOG.md"
35
-
36
- - name: Push changes
37
- if: env.push == 1
38
- env:
39
- # CI_USER: ${{ secrets.YOUR_GITHUB_USER }}
40
- CI_TOKEN: ${{ secrets.CHANGELOG_GITHUB_TOKEN }}
41
- run: |
42
- git push "https://$GITHUB_ACTOR:$CI_TOKEN@github.com/$GITHUB_REPOSITORY.git" HEAD:master
43
-
44
- # - name: Push changelog to master
45
- # if: env.push == 1
46
- # uses: ad-m/github-push-action@master
47
- # with:
48
- # github_token: ${{ secrets.CHANGELOG_GITHUB_TOKEN }}
49
- # branch: master
50
-
51
- # - name: Cherry-pick changelog to development
52
- # if: env.push == 1
53
- # env:
54
- # ACTION_EMAIL: action@github.com
55
- # ACTION_USERNAME: GitHub Action
56
- # run: |
57
- # git config --local user.email "$ACTION_EMAIL"
58
- # git config --local user.name "$ACTION_USERNAME"
59
- # commit_hash=`git show HEAD | egrep commit\ .+$ | cut -d' ' -f2`
60
- # git checkout development
61
- # git pull
62
- # git cherry-pick $commit_hash
63
- # git push
@@ -1,22 +0,0 @@
1
- name: reviewdog
2
- on: [push, pull_request]
3
- jobs:
4
- rubocop:
5
- name: runner / rubocop
6
- runs-on: ubuntu-latest
7
- steps:
8
- - name: Check out code
9
- uses: actions/checkout@v2
10
- - name: Read ruby version
11
- run: echo ::set-output name=RUBY_VERSION::$(cat .ruby-version | cut -f 1,2 -d .)
12
- id: rv
13
- - uses: ruby/setup-ruby@v1
14
- with:
15
- ruby-version: "${{ steps.rv.outputs.RUBY_VERSION }}"
16
- - uses: reviewdog/action-rubocop@v1
17
- with:
18
- filter_mode: nofilter
19
- reporter: github-check
20
- rubocop_version: 0.93.1
21
- github_token: ${{ secrets.github_token }}
22
- rubocop_extensions: rubocop-performance:1.10.2 rubocop-rails:2.9.1 rubocop-rspec:1.44.1