schema_reaper 1.0.3 → 1.0.4
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 +8 -0
- data/lib/schema_reaper/version.rb +1 -1
- data/schema_reaper.gemspec +10 -33
- metadata +10 -33
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ac78c6af3c6c9b2551d136e276c4f258e312e6fef60945ee1507b916a11349f4
|
|
4
|
+
data.tar.gz: 63e813aba8d386a01a39c72aa46c6464c4b5af37268718ca14ed0da0ae6fbd30
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c72f7ba4b88d4848cc993745ee7e7abec08a5333ff1a3c58504789e981821c48143d905235addc74655d7e57278e2d412b17914a6e19c626770edf2e7250a26a
|
|
7
|
+
data.tar.gz: 1e519017f31e2bdf150beb98889b980fe6d7d3de3e43a06800635955a8d2adfb1c469928eb1d9186aa720e3c8cfda12543487b93da5c772bd1370751d6ee4842
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.0.4] - 2026-09-04
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
- Rewrote `description` as a single tight paragraph. RubyGems collapses
|
|
7
|
+
description whitespace, so the previous multi-line bulleted text rendered as
|
|
8
|
+
an unreadable blob on the gem page. Full analyzer list and usage stay in the
|
|
9
|
+
README. Link metadata from 1.0.3 unchanged.
|
|
10
|
+
|
|
3
11
|
## [1.0.3] - 2026-09-04
|
|
4
12
|
|
|
5
13
|
### Changed
|
data/schema_reaper.gemspec
CHANGED
|
@@ -8,39 +8,16 @@ Gem::Specification.new do |spec|
|
|
|
8
8
|
spec.authors = ["aksshatt"]
|
|
9
9
|
spec.email = ["akshatpegwar5@gmail.com"]
|
|
10
10
|
|
|
11
|
-
spec.summary = "Find
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
* dead_column -- column no code path references
|
|
22
|
-
* dead_table -- table with no model/query reference, zero rows
|
|
23
|
-
* unused_index -- non-unique index, idx_scan = 0 in pg_stat
|
|
24
|
-
* duplicate_index -- index that is a prefix of a wider index
|
|
25
|
-
* missing_fk_index -- foreign-key / *_id column with no covering index
|
|
26
|
-
* always_null_column -- pg_stats null_frac = 1.0, carries no data
|
|
27
|
-
* single_value_column -- one distinct value across a large table
|
|
28
|
-
|
|
29
|
-
Every finding carries a reclaimable-bytes estimate (from row counts) and a
|
|
30
|
-
concrete fix. `generate-migration` emits a staged, reversible pair:
|
|
31
|
-
ignored_columns first, remove_column after a soak. Nothing is dropped
|
|
32
|
-
automatically. Columns owned by common gems (devise, paper_trail,
|
|
33
|
-
activestorage, actiontext, friendly_id, audited, pg_search, ahoy_matey,
|
|
34
|
-
paranoia) are whitelisted when the gem is in your bundle.
|
|
35
|
-
|
|
36
|
-
Reporters: table, json, markdown (PR comments), SARIF 2.1.0 (GitHub code
|
|
37
|
-
scanning). `scan --ci` gates only findings absent from a committed baseline.
|
|
38
|
-
`trend` keeps an append-only history log for cleanup burndown. A Rails
|
|
39
|
-
railtie adds rake tasks and an opt-in runtime tracker. Custom analyzers
|
|
40
|
-
load through the `require:` config key.
|
|
41
|
-
|
|
42
|
-
PostgreSQL only for now (MySQL adapter on the roadmap). Ruby >= 2.7.
|
|
43
|
-
DESC
|
|
11
|
+
spec.summary = "Find and safely remove schema dead-weight in Rails + PostgreSQL apps."
|
|
12
|
+
spec.description =
|
|
13
|
+
"schema_reaper finds schema dead-weight in Rails/ActiveRecord + PostgreSQL apps: " \
|
|
14
|
+
"dead columns and tables, unused, duplicate and missing foreign-key indexes, and " \
|
|
15
|
+
"always-NULL or single-value columns. It cross-references the live schema and pg_stats " \
|
|
16
|
+
"against a static scan of your code, with an optional production runtime signal for " \
|
|
17
|
+
"higher confidence. Each finding is scored, carries a reclaimable-bytes estimate, and " \
|
|
18
|
+
"ships with a staged, reversible migration. Reporters for terminal, JSON, Markdown and " \
|
|
19
|
+
"SARIF; a CI baseline gate; a trend log; a Rails railtie. PostgreSQL only for now; " \
|
|
20
|
+
"Ruby >= 2.7. See the README for full usage."
|
|
44
21
|
spec.homepage = "https://github.com/aksshatt/schema_reaper"
|
|
45
22
|
spec.license = "MIT"
|
|
46
23
|
spec.required_ruby_version = ">= 2.7.0"
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: schema_reaper
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- aksshatt
|
|
@@ -78,36 +78,14 @@ dependencies:
|
|
|
78
78
|
- - "~>"
|
|
79
79
|
- !ruby/object:Gem::Version
|
|
80
80
|
version: '1.5'
|
|
81
|
-
description:
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
* dead_column -- column no code path references
|
|
90
|
-
* dead_table -- table with no model/query reference, zero rows
|
|
91
|
-
* unused_index -- non-unique index, idx_scan = 0 in pg_stat
|
|
92
|
-
* duplicate_index -- index that is a prefix of a wider index
|
|
93
|
-
* missing_fk_index -- foreign-key / *_id column with no covering index
|
|
94
|
-
* always_null_column -- pg_stats null_frac = 1.0, carries no data
|
|
95
|
-
* single_value_column -- one distinct value across a large table
|
|
96
|
-
|
|
97
|
-
Every finding carries a reclaimable-bytes estimate (from row counts) and a
|
|
98
|
-
concrete fix. `generate-migration` emits a staged, reversible pair:
|
|
99
|
-
ignored_columns first, remove_column after a soak. Nothing is dropped
|
|
100
|
-
automatically. Columns owned by common gems (devise, paper_trail,
|
|
101
|
-
activestorage, actiontext, friendly_id, audited, pg_search, ahoy_matey,
|
|
102
|
-
paranoia) are whitelisted when the gem is in your bundle.
|
|
103
|
-
|
|
104
|
-
Reporters: table, json, markdown (PR comments), SARIF 2.1.0 (GitHub code
|
|
105
|
-
scanning). `scan --ci` gates only findings absent from a committed baseline.
|
|
106
|
-
`trend` keeps an append-only history log for cleanup burndown. A Rails
|
|
107
|
-
railtie adds rake tasks and an opt-in runtime tracker. Custom analyzers
|
|
108
|
-
load through the `require:` config key.
|
|
109
|
-
|
|
110
|
-
PostgreSQL only for now (MySQL adapter on the roadmap). Ruby >= 2.7.
|
|
81
|
+
description: 'schema_reaper finds schema dead-weight in Rails/ActiveRecord + PostgreSQL
|
|
82
|
+
apps: dead columns and tables, unused, duplicate and missing foreign-key indexes,
|
|
83
|
+
and always-NULL or single-value columns. It cross-references the live schema and
|
|
84
|
+
pg_stats against a static scan of your code, with an optional production runtime
|
|
85
|
+
signal for higher confidence. Each finding is scored, carries a reclaimable-bytes
|
|
86
|
+
estimate, and ships with a staged, reversible migration. Reporters for terminal,
|
|
87
|
+
JSON, Markdown and SARIF; a CI baseline gate; a trend log; a Rails railtie. PostgreSQL
|
|
88
|
+
only for now; Ruby >= 2.7. See the README for full usage.'
|
|
111
89
|
email:
|
|
112
90
|
- akshatpegwar5@gmail.com
|
|
113
91
|
executables:
|
|
@@ -188,6 +166,5 @@ requirements: []
|
|
|
188
166
|
rubygems_version: 3.4.10
|
|
189
167
|
signing_key:
|
|
190
168
|
specification_version: 4
|
|
191
|
-
summary: Find
|
|
192
|
-
in Rails/ActiveRecord apps -- then remove it safely.
|
|
169
|
+
summary: Find and safely remove schema dead-weight in Rails + PostgreSQL apps.
|
|
193
170
|
test_files: []
|