ridgepole 3.1.2 → 3.1.3
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +29 -4
- data/bin/ridgepole +6 -1
- data/lib/ridgepole/delta.rb +1 -1
- data/lib/ridgepole/dsl_parser/context.rb +1 -1
- data/lib/ridgepole/version.rb +1 -1
- metadata +50 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5f54f0a59342af5d5d5bc4a1bce81f963a5f85b8b6da78702dbb03db59488dfe
|
|
4
|
+
data.tar.gz: d163b0a5ef7ff03125b83d40b977e6c6f7097f7a6286a4c7d1ae165e19638126
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1092d39833a655561847f2e04a98056311b63249baabf246bfc25aacd23003a6b8573e17ba835afe3b75bd1f88e6c903dc8f8d7aa471c3c9a69a7331f55acaaf
|
|
7
|
+
data.tar.gz: 2c6ceafe3191a18f0558ab0d7acf74b6133c5389a439602d1159cbdc47980cc8727ed21dfef11e55b3fc026312e32b6ceaf4475dbe36be5df6fe2a0d109bb877
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
|
@@ -7,7 +7,7 @@ It defines DB schema using [Rails DSL](http://guides.rubyonrails.org/migrations.
|
|
|
7
7
|
|
|
8
8
|
[](https://badge.fury.io/rb/ridgepole)
|
|
9
9
|
[](https://github.com/ridgepole/ridgepole/actions/workflows/test.yml)
|
|
10
|
-
[](https://codecov.io/gh/ridgepole/ridgepole)
|
|
11
11
|
|
|
12
12
|
> [!warning]
|
|
13
13
|
> The order of columns when exporting has changed in Rails 8.1. https://github.com/rails/rails/pull/53281
|
|
@@ -211,6 +211,31 @@ add_index "child", ["parent_id"], name: "par_ind", using: :btree
|
|
|
211
211
|
add_foreign_key "child", "parent", name: "child_ibfk_1"
|
|
212
212
|
```
|
|
213
213
|
|
|
214
|
+
## CHECK Constraint
|
|
215
|
+
|
|
216
|
+
```ruby
|
|
217
|
+
create_table "products", force: :cascade do |t|
|
|
218
|
+
t.string "name", null: false
|
|
219
|
+
t.decimal "price", precision: 10, scale: 2
|
|
220
|
+
t.integer "quantity"
|
|
221
|
+
|
|
222
|
+
t.check_constraint "price > 0", name: "price_check"
|
|
223
|
+
t.check_constraint "quantity >= 0", name: "quantity_check"
|
|
224
|
+
end
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
> [!important]
|
|
228
|
+
> **Matching Schemafile to Database Output**
|
|
229
|
+
>
|
|
230
|
+
> CHECK constraint expressions may be formatted differently by your database when exported. For example:
|
|
231
|
+
> - DSL: `"(price > 0)"`
|
|
232
|
+
> - Database export: `` "`price` > 0" `` (MySQL) or `"((price > 0))"` (PostgreSQL)
|
|
233
|
+
>
|
|
234
|
+
> To avoid unnecessary migrations where constraints are dropped and recreated:
|
|
235
|
+
> Please modify your Schemafile to match exactly what the SchemaDumper outputs. This approach maintains simplicity and prevents migration issues instead of maintaining complex normalization logic in Ridgepole.
|
|
236
|
+
>
|
|
237
|
+
> Run `ridgepole --export` to see the exact format your database uses, then update your Schemafile accordingly.
|
|
238
|
+
|
|
214
239
|
## Ignore Column/Index/FK
|
|
215
240
|
|
|
216
241
|
```ruby
|
|
@@ -387,9 +412,9 @@ see https://github.com/ridgepole/ridgepole/issues/568
|
|
|
387
412
|
docker compose up -d
|
|
388
413
|
bundle install
|
|
389
414
|
bundle exec appraisal install
|
|
390
|
-
bundle exec appraisal activerecord-
|
|
391
|
-
# POSTGRESQL=1 bundle exec appraisal activerecord-
|
|
392
|
-
# MYSQL80=1 bundle exec appraisal activerecord-
|
|
415
|
+
bundle exec appraisal activerecord-8.2 rake
|
|
416
|
+
# POSTGRESQL=1 bundle exec appraisal activerecord-8.2 rake
|
|
417
|
+
# MYSQL80=1 bundle exec appraisal activerecord-8.2 rake
|
|
393
418
|
```
|
|
394
419
|
|
|
395
420
|
> [!note]
|
data/bin/ridgepole
CHANGED
|
@@ -187,7 +187,12 @@ begin
|
|
|
187
187
|
client = Ridgepole::Client.new(Ridgepole::Config.load(config, env, spec_name), options) if config
|
|
188
188
|
|
|
189
189
|
ActiveRecord::Base.logger = logger
|
|
190
|
-
|
|
190
|
+
|
|
191
|
+
if ActiveRecord.gem_version < Gem::Version.new('8.2.0.alpha')
|
|
192
|
+
ActiveSupport::LogSubscriber.colorize_logging = options[:color]
|
|
193
|
+
else
|
|
194
|
+
ActiveSupport.colorize_logging = options[:color]
|
|
195
|
+
end
|
|
191
196
|
|
|
192
197
|
case mode
|
|
193
198
|
when :export
|
data/lib/ridgepole/delta.rb
CHANGED
|
@@ -48,7 +48,7 @@ module Ridgepole
|
|
|
48
48
|
table_name = table_name.to_s
|
|
49
49
|
# Keep column_name for expression index support
|
|
50
50
|
# https://github.com/rails/rails/pull/23393
|
|
51
|
-
column_name = [column_name].flatten.map(&:to_s) unless column_name.is_a?(String) && /\W/ === column_name
|
|
51
|
+
column_name = [column_name].flatten.map(&:to_s) unless column_name.is_a?(String) && /\W/ === column_name
|
|
52
52
|
options[:name] = options[:name].to_s if options[:name]
|
|
53
53
|
@__definition[table_name] ||= {}
|
|
54
54
|
@__definition[table_name][:indices] ||= {}
|
data/lib/ridgepole/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ridgepole
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.1.
|
|
4
|
+
version: 3.1.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Genki Sugawara
|
|
@@ -18,7 +18,7 @@ dependencies:
|
|
|
18
18
|
version: '6.1'
|
|
19
19
|
- - "<"
|
|
20
20
|
- !ruby/object:Gem::Version
|
|
21
|
-
version: '8.
|
|
21
|
+
version: '8.3'
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -28,7 +28,7 @@ dependencies:
|
|
|
28
28
|
version: '6.1'
|
|
29
29
|
- - "<"
|
|
30
30
|
- !ruby/object:Gem::Version
|
|
31
|
-
version: '8.
|
|
31
|
+
version: '8.3'
|
|
32
32
|
- !ruby/object:Gem::Dependency
|
|
33
33
|
name: diffy
|
|
34
34
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -119,14 +119,14 @@ dependencies:
|
|
|
119
119
|
requirements:
|
|
120
120
|
- - ">="
|
|
121
121
|
- !ruby/object:Gem::Version
|
|
122
|
-
version: 0.
|
|
122
|
+
version: 0.2.0
|
|
123
123
|
type: :development
|
|
124
124
|
prerelease: false
|
|
125
125
|
version_requirements: !ruby/object:Gem::Requirement
|
|
126
126
|
requirements:
|
|
127
127
|
- - ">="
|
|
128
128
|
- !ruby/object:Gem::Version
|
|
129
|
-
version: 0.
|
|
129
|
+
version: 0.2.0
|
|
130
130
|
- !ruby/object:Gem::Dependency
|
|
131
131
|
name: hash_order_helper
|
|
132
132
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -197,6 +197,20 @@ dependencies:
|
|
|
197
197
|
- - ">="
|
|
198
198
|
- !ruby/object:Gem::Version
|
|
199
199
|
version: 3.0.0
|
|
200
|
+
- !ruby/object:Gem::Dependency
|
|
201
|
+
name: rspec_junit_formatter
|
|
202
|
+
requirement: !ruby/object:Gem::Requirement
|
|
203
|
+
requirements:
|
|
204
|
+
- - ">="
|
|
205
|
+
- !ruby/object:Gem::Version
|
|
206
|
+
version: '0'
|
|
207
|
+
type: :development
|
|
208
|
+
prerelease: false
|
|
209
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
210
|
+
requirements:
|
|
211
|
+
- - ">="
|
|
212
|
+
- !ruby/object:Gem::Version
|
|
213
|
+
version: '0'
|
|
200
214
|
- !ruby/object:Gem::Dependency
|
|
201
215
|
name: rspec-match_fuzzy
|
|
202
216
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -231,14 +245,14 @@ dependencies:
|
|
|
231
245
|
requirements:
|
|
232
246
|
- - '='
|
|
233
247
|
- !ruby/object:Gem::Version
|
|
234
|
-
version: 1.
|
|
248
|
+
version: 1.82.1
|
|
235
249
|
type: :development
|
|
236
250
|
prerelease: false
|
|
237
251
|
version_requirements: !ruby/object:Gem::Requirement
|
|
238
252
|
requirements:
|
|
239
253
|
- - '='
|
|
240
254
|
- !ruby/object:Gem::Version
|
|
241
|
-
version: 1.
|
|
255
|
+
version: 1.82.1
|
|
242
256
|
- !ruby/object:Gem::Dependency
|
|
243
257
|
name: rubocop-rake
|
|
244
258
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -281,6 +295,34 @@ dependencies:
|
|
|
281
295
|
- - ">="
|
|
282
296
|
- !ruby/object:Gem::Version
|
|
283
297
|
version: '0'
|
|
298
|
+
- !ruby/object:Gem::Dependency
|
|
299
|
+
name: simplecov-cobertura
|
|
300
|
+
requirement: !ruby/object:Gem::Requirement
|
|
301
|
+
requirements:
|
|
302
|
+
- - ">="
|
|
303
|
+
- !ruby/object:Gem::Version
|
|
304
|
+
version: '0'
|
|
305
|
+
type: :development
|
|
306
|
+
prerelease: false
|
|
307
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
308
|
+
requirements:
|
|
309
|
+
- - ">="
|
|
310
|
+
- !ruby/object:Gem::Version
|
|
311
|
+
version: '0'
|
|
312
|
+
- !ruby/object:Gem::Dependency
|
|
313
|
+
name: simplecov-html
|
|
314
|
+
requirement: !ruby/object:Gem::Requirement
|
|
315
|
+
requirements:
|
|
316
|
+
- - ">="
|
|
317
|
+
- !ruby/object:Gem::Version
|
|
318
|
+
version: '0'
|
|
319
|
+
type: :development
|
|
320
|
+
prerelease: false
|
|
321
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
322
|
+
requirements:
|
|
323
|
+
- - ">="
|
|
324
|
+
- !ruby/object:Gem::Version
|
|
325
|
+
version: '0'
|
|
284
326
|
- !ruby/object:Gem::Dependency
|
|
285
327
|
name: simplecov-lcov
|
|
286
328
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -364,7 +406,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
364
406
|
- !ruby/object:Gem::Version
|
|
365
407
|
version: '0'
|
|
366
408
|
requirements: []
|
|
367
|
-
rubygems_version:
|
|
409
|
+
rubygems_version: 4.0.3
|
|
368
410
|
specification_version: 4
|
|
369
411
|
summary: Ridgepole is a tool to manage DB schema.
|
|
370
412
|
test_files: []
|