activerecord-clean-db-structure 0.4.1 → 0.4.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/.github/workflows/ci.yml +16 -0
- data/CHANGELOG.md +10 -0
- data/Gemfile.lock +28 -13
- data/README.md +11 -0
- data/Rakefile +9 -0
- data/lib/activerecord-clean-db-structure/clean_dump.rb +20 -17
- data/lib/activerecord-clean-db-structure/tasks/clean_db_structure.rake +2 -1
- data/lib/activerecord-clean-db-structure/version.rb +1 -1
- data/test/clean_dump_test.rb +35 -0
- data/test/data/input.sql +162 -0
- data/test/expectations/default_props.sql +78 -0
- data/test/expectations/ignore_ids.sql +104 -0
- data/test/expectations/indexes_after_tables.sql +70 -0
- data/test/expectations/keep_extensions_all.sql +84 -0
- data/test/expectations/order_column_definitions.sql +78 -0
- data/test/expectations/order_schema_migrations_values.sql +80 -0
- data/test/test_helper.rb +6 -0
- metadata +16 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '08c48e1dbdf0558fcbcb0f93982dafd1ac7d58063fa445cc10dd0473dc6a9d27'
|
4
|
+
data.tar.gz: bcc6aa3df97244977fad69c275f1ee815ceb706fd5674f2832644f4f119e44c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21277622911894dd05ab07bdf320bc59b467e9c29c9aa5d24f22b0e463e24af7d3804d15b4eb66647eea98be94400f45ec519a55776211a14ff9ea95c6fb9ba2
|
7
|
+
data.tar.gz: 515d4fae0ddb8588e8426e8a5a932a6c8c116586f53bcc7c2020f3ae6b45444f57a4a9aebefd3957ba55f2e011ca0c54dc7c0321f8ce3f4467f8f0db9f8dd034
|
@@ -0,0 +1,16 @@
|
|
1
|
+
name: CI
|
2
|
+
on:
|
3
|
+
pull_request:
|
4
|
+
jobs:
|
5
|
+
test:
|
6
|
+
runs-on: ubuntu-latest
|
7
|
+
strategy:
|
8
|
+
matrix:
|
9
|
+
ruby: ["3.1", "3.2"]
|
10
|
+
steps:
|
11
|
+
- uses: actions/checkout@v3
|
12
|
+
- uses: ruby/setup-ruby@v1
|
13
|
+
with:
|
14
|
+
ruby-version: ${{ matrix.ruby }}
|
15
|
+
bundler-cache: true
|
16
|
+
- run: bundle exec rake test
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,16 @@
|
|
4
4
|
|
5
5
|
* ...
|
6
6
|
|
7
|
+
## 0.4.3 2024-09-22
|
8
|
+
|
9
|
+
* Fix additional regexp warnings from "rake test". [#50](https://github.com/lfittl/activerecord-clean-db-structure/pull/50)
|
10
|
+
|
11
|
+
## 0.4.2 2024-09-22
|
12
|
+
|
13
|
+
* Add an option to not remove extensions [#43](https://github.com/lfittl/activerecord-clean-db-structure/pull/43)
|
14
|
+
* Fix incorrect primary structure.sql filename in the case of multi-database setup [#44](https://github.com/lfittl/activerecord-clean-db-structure/pull/44)
|
15
|
+
* Fix regexp warnings [#49](https://github.com/lfittl/activerecord-clean-db-structure/pull/49)
|
16
|
+
|
7
17
|
## 0.4.1 2024-08-28
|
8
18
|
|
9
19
|
* Fix Rake task name for 6.1+ [#32](https://github.com/lfittl/activerecord-clean-db-structure/pull/32)
|
data/Gemfile.lock
CHANGED
@@ -1,31 +1,46 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
activerecord-clean-db-structure (0.4.
|
4
|
+
activerecord-clean-db-structure (0.4.3)
|
5
5
|
activerecord (>= 4.2)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
activemodel (7.
|
11
|
-
activesupport (= 7.
|
12
|
-
activerecord (7.
|
13
|
-
activemodel (= 7.
|
14
|
-
activesupport (= 7.
|
15
|
-
|
16
|
-
|
10
|
+
activemodel (7.2.1)
|
11
|
+
activesupport (= 7.2.1)
|
12
|
+
activerecord (7.2.1)
|
13
|
+
activemodel (= 7.2.1)
|
14
|
+
activesupport (= 7.2.1)
|
15
|
+
timeout (>= 0.4.0)
|
16
|
+
activesupport (7.2.1)
|
17
|
+
base64
|
18
|
+
bigdecimal
|
19
|
+
concurrent-ruby (~> 1.0, >= 1.3.1)
|
20
|
+
connection_pool (>= 2.2.5)
|
21
|
+
drb
|
17
22
|
i18n (>= 1.6, < 2)
|
23
|
+
logger (>= 1.4.2)
|
18
24
|
minitest (>= 5.1)
|
19
|
-
|
20
|
-
|
25
|
+
securerandom (>= 0.3)
|
26
|
+
tzinfo (~> 2.0, >= 2.0.5)
|
27
|
+
base64 (0.2.0)
|
28
|
+
bigdecimal (3.1.8)
|
29
|
+
concurrent-ruby (1.3.4)
|
30
|
+
connection_pool (2.4.1)
|
31
|
+
drb (2.2.1)
|
21
32
|
i18n (1.14.5)
|
22
33
|
concurrent-ruby (~> 1.0)
|
23
|
-
|
24
|
-
|
34
|
+
logger (1.6.1)
|
35
|
+
minitest (5.25.1)
|
36
|
+
rake (13.2.1)
|
37
|
+
securerandom (0.3.1)
|
38
|
+
timeout (0.4.1)
|
25
39
|
tzinfo (2.0.6)
|
26
40
|
concurrent-ruby (~> 1.0)
|
27
41
|
|
28
42
|
PLATFORMS
|
43
|
+
arm64-darwin-22
|
29
44
|
ruby
|
30
45
|
|
31
46
|
DEPENDENCIES
|
@@ -33,4 +48,4 @@ DEPENDENCIES
|
|
33
48
|
rake (~> 13)
|
34
49
|
|
35
50
|
BUNDLED WITH
|
36
|
-
|
51
|
+
2.5.18
|
data/README.md
CHANGED
@@ -87,6 +87,17 @@ INSERT INTO "schema_migrations" (version) VALUES
|
|
87
87
|
;
|
88
88
|
```
|
89
89
|
|
90
|
+
By default the gem will remove [some extensions](https://github.com/ghiculescu/activerecord-clean-db-structure/blob/c9551391476a5e7a08ff314501af89baddcf669a/lib/activerecord-clean-db-structure/clean_dump.rb#L24) that typically aren't needed in structure dumps. You can choose to keep all, or just some, of those extensions:
|
91
|
+
|
92
|
+
```ruby
|
93
|
+
Rails.application.configure do
|
94
|
+
config.activerecord_clean_db_structure.keep_extensions = :all
|
95
|
+
|
96
|
+
# This does the same thing as :all. You can choose which optional extensions to keep.
|
97
|
+
config.activerecord_clean_db_structure.keep_extensions = ["pg_stat_statements", "pg_buffercache"]
|
98
|
+
end
|
99
|
+
```
|
100
|
+
|
90
101
|
## Authors
|
91
102
|
|
92
103
|
* [Lukas Fittl](https://github.com/lfittl)
|
data/Rakefile
CHANGED
@@ -1,3 +1,12 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'bundler/setup'
|
3
3
|
require 'bundler/gem_tasks'
|
4
|
+
require "rake/testtask"
|
5
|
+
|
6
|
+
Rake::TestTask.new(:test) do |t|
|
7
|
+
t.libs << "test"
|
8
|
+
t.libs << "lib"
|
9
|
+
t.test_files = FileList["test/**/*_test.rb"]
|
10
|
+
end
|
11
|
+
|
12
|
+
task default: %i[test]
|
@@ -21,19 +21,22 @@ module ActiveRecordCleanDbStructure
|
|
21
21
|
dump.gsub!(/^SET xmloption = content;\n/m, '') # 12
|
22
22
|
dump.gsub!(/^SET default_table_access_method = heap;\n/m, '') # 12
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
24
|
+
extensions_to_remove = ["pg_stat_statements", "pg_buffercache"]
|
25
|
+
if options[:keep_extensions] == :all
|
26
|
+
extensions_to_remove = []
|
27
|
+
elsif options[:keep_extensions]
|
28
|
+
extensions_to_remove -= Array(options[:keep_extensions])
|
29
|
+
end
|
30
|
+
extensions_to_remove.each do |ext|
|
31
|
+
dump.gsub!(/^CREATE EXTENSION IF NOT EXISTS #{ext}.*/, '')
|
32
|
+
dump.gsub!(/^-- Name: (EXTENSION )?#{ext};.*/, '')
|
33
|
+
end
|
31
34
|
|
32
35
|
# Remove comments on extensions, they create problems if the extension is owned by another user
|
33
36
|
dump.gsub!(/^COMMENT ON EXTENSION .*/, '')
|
34
37
|
|
35
38
|
# Remove useless, version-specific parts of comments
|
36
|
-
dump.gsub!(/^-- (.*); Schema: ([\
|
39
|
+
dump.gsub!(/^-- (.*); Schema: ([\w\.]+|-); Owner: -.*/, '-- \1')
|
37
40
|
|
38
41
|
# Remove useless comment lines
|
39
42
|
dump.gsub!(/^--$/, '')
|
@@ -44,8 +47,8 @@ module ActiveRecordCleanDbStructure
|
|
44
47
|
# This is a bit optimistic, but works as long as you don't have an id field thats not a sequence/uuid
|
45
48
|
dump.gsub!(/^ id integer NOT NULL(,)?$/, ' id SERIAL PRIMARY KEY\1')
|
46
49
|
dump.gsub!(/^ id bigint NOT NULL(,)?$/, ' id BIGSERIAL PRIMARY KEY\1')
|
47
|
-
dump.gsub!(/^ id uuid DEFAULT ([\
|
48
|
-
dump.gsub!(/^ id uuid DEFAULT ([\
|
50
|
+
dump.gsub!(/^ id uuid DEFAULT ([\w]+\.)?uuid_generate_v4\(\) NOT NULL(,)?$/, ' id uuid DEFAULT \1uuid_generate_v4() PRIMARY KEY\2')
|
51
|
+
dump.gsub!(/^ id uuid DEFAULT ([\w]+\.)?gen_random_uuid\(\) NOT NULL(,)?$/, ' id uuid DEFAULT \1gen_random_uuid() PRIMARY KEY\2')
|
49
52
|
dump.gsub!(/^CREATE SEQUENCE [\w\.]+_id_seq\s+(AS integer\s+)?START WITH 1\s+INCREMENT BY 1\s+NO MINVALUE\s+NO MAXVALUE\s+CACHE 1;$/, '')
|
50
53
|
dump.gsub!(/^ALTER SEQUENCE [\w\.]+_id_seq OWNED BY .*;$/, '')
|
51
54
|
dump.gsub!(/^ALTER TABLE ONLY [\w\.]+ ALTER COLUMN id SET DEFAULT nextval\('[\w\.]+_id_seq'::regclass\);$/, '')
|
@@ -56,7 +59,7 @@ module ActiveRecordCleanDbStructure
|
|
56
59
|
end
|
57
60
|
|
58
61
|
# Remove inherited tables
|
59
|
-
inherited_tables_regexp = /-- Name: ([\
|
62
|
+
inherited_tables_regexp = /-- Name: ([\w\.]+); Type: TABLE\n\n[^;]+?INHERITS \([\w\.]+\);/m
|
60
63
|
inherited_tables = dump.scan(inherited_tables_regexp).map(&:first)
|
61
64
|
dump.gsub!(inherited_tables_regexp, '')
|
62
65
|
inherited_tables.each do |inherited_table|
|
@@ -73,15 +76,15 @@ module ActiveRecordCleanDbStructure
|
|
73
76
|
partitioned_tables = []
|
74
77
|
|
75
78
|
# Postgres 12 pg_dump will output separate ATTACH PARTITION statements (even when run against an 11 or older server)
|
76
|
-
partitioned_tables_regexp1 = /ALTER TABLE ONLY [\
|
79
|
+
partitioned_tables_regexp1 = /ALTER TABLE ONLY [\w\.]+ ATTACH PARTITION ([\w\.]+)/
|
77
80
|
partitioned_tables += dump.scan(partitioned_tables_regexp1).map(&:last)
|
78
81
|
|
79
82
|
# Earlier versions use an inline PARTITION OF
|
80
|
-
partitioned_tables_regexp2 = /-- Name: ([\
|
83
|
+
partitioned_tables_regexp2 = /-- Name: ([\w\.]+); Type: TABLE\n\n[^;]+?PARTITION OF [\w\.]+\n[^;]+?;/m
|
81
84
|
partitioned_tables += dump.scan(partitioned_tables_regexp2).map(&:first)
|
82
85
|
|
83
86
|
partitioned_tables.each do |partitioned_table|
|
84
|
-
|
87
|
+
_partitioned_schema_name, partitioned_table_name_only = partitioned_table.split('.', 2)
|
85
88
|
dump.gsub!(/-- Name: #{partitioned_table_name_only}; Type: TABLE/, '')
|
86
89
|
dump.gsub!(/CREATE TABLE #{partitioned_table} \([^;]+;/m, '')
|
87
90
|
dump.gsub!(/ALTER TABLE ONLY ([\w_\.]+) ATTACH PARTITION #{partitioned_table}[^;]+;/m, '')
|
@@ -101,7 +104,7 @@ module ActiveRecordCleanDbStructure
|
|
101
104
|
dump.gsub!(/-- Name: #{partitioned_table}_pkey; Type: INDEX ATTACH\n\n[^;]+?ATTACH PARTITION ([\w_]+\.)?#{partitioned_table}_pkey;/, '')
|
102
105
|
end
|
103
106
|
# This is mostly done to allow restoring Postgres 11 output on Postgres 10
|
104
|
-
dump.gsub!(/CREATE INDEX ([\
|
107
|
+
dump.gsub!(/CREATE INDEX ([\w]+) ON ONLY/, 'CREATE INDEX \\1 ON')
|
105
108
|
|
106
109
|
if options[:order_schema_migrations_values] == true
|
107
110
|
schema_migrations_cleanup
|
@@ -121,7 +124,7 @@ module ActiveRecordCleanDbStructure
|
|
121
124
|
dump.gsub!(/^CREATE( UNIQUE)? INDEX \w+ ON .+\n+/, '')
|
122
125
|
dump.gsub!(/^-- Name: \w+; Type: INDEX\n+/, '')
|
123
126
|
indexes.each do |table, indexes_for_table|
|
124
|
-
dump.gsub!(/^(CREATE TABLE #{table}\b(:?[^;\n]*\n)+\)
|
127
|
+
dump.gsub!(/^(CREATE TABLE #{table}\b(:?[^;\n]*\n)+\);*\n(?:.*);*)/) { $1 + "\n\n" + indexes_for_table }
|
125
128
|
end
|
126
129
|
end
|
127
130
|
|
@@ -148,7 +151,7 @@ module ActiveRecordCleanDbStructure
|
|
148
151
|
inside_table = true
|
149
152
|
columns = []
|
150
153
|
result << source_line
|
151
|
-
elsif source_line.start_with?(")
|
154
|
+
elsif source_line.start_with?(")")
|
152
155
|
if inside_table
|
153
156
|
inside_table = false
|
154
157
|
columns.sort_by!(&:first)
|
@@ -9,7 +9,8 @@ Rake::Task[ActiveRecord.version >= Gem::Version.new('6.1') ? 'db:schema:dump' :
|
|
9
9
|
databases = ActiveRecord::Tasks::DatabaseTasks.setup_initial_database_yaml
|
10
10
|
ActiveRecord::Tasks::DatabaseTasks.for_each(databases) do |spec_name|
|
11
11
|
Rails.application.config.paths['db'].each do |path|
|
12
|
-
|
12
|
+
filename = spec_name == 'primary' ? 'structure.sql' : spec_name + '_structure.sql'
|
13
|
+
filenames << File.join(path, filename)
|
13
14
|
end
|
14
15
|
end
|
15
16
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class CleanDumpTest < Minitest::Test
|
4
|
+
def test_basic_case
|
5
|
+
assert_cleans_dump "expectations/default_props.sql", {}
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_ignore_ids
|
9
|
+
assert_cleans_dump "expectations/ignore_ids.sql", { ignore_ids: true }
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_order_column_definitions
|
13
|
+
assert_cleans_dump "expectations/order_column_definitions.sql", { order_column_definitions: true }
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_order_schema_migrations_values
|
17
|
+
assert_cleans_dump "expectations/order_schema_migrations_values.sql", { order_schema_migrations_values: true }
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_indexes_after_tables
|
21
|
+
assert_cleans_dump "expectations/indexes_after_tables.sql", { indexes_after_tables: true }
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_keep_extensions_all
|
25
|
+
assert_cleans_dump "expectations/keep_extensions_all.sql", { keep_extensions: :all }
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def assert_cleans_dump(expected_output_path, props)
|
31
|
+
cleaner = ActiveRecordCleanDbStructure::CleanDump.new(File.read(File.join(__dir__, "data/input.sql")), props)
|
32
|
+
cleaner.run
|
33
|
+
assert_equal File.read(File.join(__dir__, expected_output_path)), cleaner.dump
|
34
|
+
end
|
35
|
+
end
|
data/test/data/input.sql
ADDED
@@ -0,0 +1,162 @@
|
|
1
|
+
SET statement_timeout = 0;
|
2
|
+
SET lock_timeout = 0;
|
3
|
+
SET idle_in_transaction_session_timeout = 0;
|
4
|
+
SET client_encoding = 'UTF8';
|
5
|
+
SET standard_conforming_strings = on;
|
6
|
+
SELECT pg_catalog.set_config('search_path', '', false);
|
7
|
+
SET check_function_bodies = false;
|
8
|
+
SET xmloption = content;
|
9
|
+
SET client_min_messages = warning;
|
10
|
+
SET row_security = off;
|
11
|
+
|
12
|
+
--
|
13
|
+
-- Name: pg_stat_statements; Type: EXTENSION; Schema: -; Owner: -
|
14
|
+
--
|
15
|
+
|
16
|
+
CREATE EXTENSION IF NOT EXISTS pg_stat_statements WITH SCHEMA public;
|
17
|
+
|
18
|
+
|
19
|
+
--
|
20
|
+
-- Name: EXTENSION pg_stat_statements; Type: COMMENT; Schema: -; Owner: -
|
21
|
+
--
|
22
|
+
|
23
|
+
COMMENT ON EXTENSION pg_stat_statements IS 'track execution statistics of all SQL statements executed';
|
24
|
+
|
25
|
+
|
26
|
+
SET default_tablespace = '';
|
27
|
+
|
28
|
+
SET default_table_access_method = heap;
|
29
|
+
|
30
|
+
--
|
31
|
+
-- Name: ar_internal_metadata; Type: TABLE; Schema: public; Owner: -
|
32
|
+
--
|
33
|
+
|
34
|
+
CREATE TABLE public.ar_internal_metadata (
|
35
|
+
key character varying NOT NULL,
|
36
|
+
value character varying,
|
37
|
+
created_at timestamp(6) without time zone NOT NULL,
|
38
|
+
updated_at timestamp(6) without time zone NOT NULL
|
39
|
+
);
|
40
|
+
|
41
|
+
|
42
|
+
--
|
43
|
+
-- Name: delayed_jobs; Type: TABLE; Schema: public; Owner: -
|
44
|
+
--
|
45
|
+
|
46
|
+
CREATE TABLE public.delayed_jobs (
|
47
|
+
id bigint NOT NULL,
|
48
|
+
priority integer DEFAULT 0,
|
49
|
+
attempts integer DEFAULT 0,
|
50
|
+
handler text,
|
51
|
+
last_error text,
|
52
|
+
run_at timestamp without time zone,
|
53
|
+
locked_at timestamp without time zone,
|
54
|
+
failed_at timestamp without time zone,
|
55
|
+
locked_by character varying(255),
|
56
|
+
queue character varying(255),
|
57
|
+
created_at timestamp without time zone NOT NULL,
|
58
|
+
updated_at timestamp without time zone NOT NULL,
|
59
|
+
metadata jsonb DEFAULT '{}'::jsonb,
|
60
|
+
whodunnit text
|
61
|
+
)
|
62
|
+
WITH (fillfactor='85');
|
63
|
+
|
64
|
+
|
65
|
+
--
|
66
|
+
-- Name: delayed_jobs_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
67
|
+
--
|
68
|
+
|
69
|
+
CREATE SEQUENCE public.delayed_jobs_id_seq
|
70
|
+
START WITH 1
|
71
|
+
INCREMENT BY 1
|
72
|
+
NO MINVALUE
|
73
|
+
NO MAXVALUE
|
74
|
+
CACHE 1;
|
75
|
+
|
76
|
+
|
77
|
+
--
|
78
|
+
-- Name: delayed_jobs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
79
|
+
--
|
80
|
+
|
81
|
+
ALTER SEQUENCE public.delayed_jobs_id_seq OWNED BY public.delayed_jobs.id;
|
82
|
+
|
83
|
+
|
84
|
+
--
|
85
|
+
-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -
|
86
|
+
--
|
87
|
+
|
88
|
+
CREATE TABLE public.schema_migrations (
|
89
|
+
version character varying NOT NULL
|
90
|
+
);
|
91
|
+
|
92
|
+
|
93
|
+
--
|
94
|
+
-- Name: delayed_jobs id; Type: DEFAULT; Schema: public; Owner: -
|
95
|
+
--
|
96
|
+
|
97
|
+
ALTER TABLE ONLY public.delayed_jobs ALTER COLUMN id SET DEFAULT nextval('public.delayed_jobs_id_seq'::regclass);
|
98
|
+
|
99
|
+
|
100
|
+
--
|
101
|
+
-- Name: ar_internal_metadata ar_internal_metadata_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
102
|
+
--
|
103
|
+
|
104
|
+
ALTER TABLE ONLY public.ar_internal_metadata
|
105
|
+
ADD CONSTRAINT ar_internal_metadata_pkey PRIMARY KEY (key);
|
106
|
+
|
107
|
+
|
108
|
+
--
|
109
|
+
-- Name: delayed_jobs delayed_jobs_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
110
|
+
--
|
111
|
+
|
112
|
+
ALTER TABLE ONLY public.delayed_jobs
|
113
|
+
ADD CONSTRAINT delayed_jobs_pkey PRIMARY KEY (id);
|
114
|
+
|
115
|
+
|
116
|
+
--
|
117
|
+
-- Name: schema_migrations schema_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
118
|
+
--
|
119
|
+
|
120
|
+
ALTER TABLE ONLY public.schema_migrations
|
121
|
+
ADD CONSTRAINT schema_migrations_pkey PRIMARY KEY (version);
|
122
|
+
|
123
|
+
|
124
|
+
--
|
125
|
+
-- Name: index_delayed_jobs_on_locked_by; Type: INDEX; Schema: public; Owner: -
|
126
|
+
--
|
127
|
+
|
128
|
+
CREATE INDEX index_delayed_jobs_on_locked_by ON public.delayed_jobs USING btree (locked_by);
|
129
|
+
|
130
|
+
|
131
|
+
--
|
132
|
+
-- Name: index_delayed_jobs_on_queue; Type: INDEX; Schema: public; Owner: -
|
133
|
+
--
|
134
|
+
|
135
|
+
CREATE INDEX index_delayed_jobs_on_queue ON public.delayed_jobs USING btree (queue);
|
136
|
+
|
137
|
+
|
138
|
+
--
|
139
|
+
-- Name: index_delayed_jobs_on_run_at; Type: INDEX; Schema: public; Owner: -
|
140
|
+
--
|
141
|
+
|
142
|
+
CREATE INDEX index_delayed_jobs_on_run_at ON public.delayed_jobs USING btree (run_at) WHERE (locked_at IS NULL);
|
143
|
+
|
144
|
+
|
145
|
+
--
|
146
|
+
-- PostgreSQL database dump complete
|
147
|
+
--
|
148
|
+
|
149
|
+
SET search_path TO "$user", public;
|
150
|
+
|
151
|
+
INSERT INTO "schema_migrations" (version) VALUES
|
152
|
+
('20240822225012'),
|
153
|
+
('20240822224954'),
|
154
|
+
('20240725043656'),
|
155
|
+
('20240621041110'),
|
156
|
+
('20240621020038'),
|
157
|
+
('20220802204003'),
|
158
|
+
('20211125055031'),
|
159
|
+
('20211012054749'),
|
160
|
+
('20210923052631'),
|
161
|
+
('20210903003251');
|
162
|
+
|
@@ -0,0 +1,78 @@
|
|
1
|
+
SET statement_timeout = 0;
|
2
|
+
SET lock_timeout = 0;
|
3
|
+
SET client_encoding = 'UTF8';
|
4
|
+
SET standard_conforming_strings = on;
|
5
|
+
SELECT pg_catalog.set_config('search_path', '', false);
|
6
|
+
SET check_function_bodies = false;
|
7
|
+
SET client_min_messages = warning;
|
8
|
+
|
9
|
+
SET default_tablespace = '';
|
10
|
+
|
11
|
+
-- Name: ar_internal_metadata; Type: TABLE
|
12
|
+
|
13
|
+
CREATE TABLE public.ar_internal_metadata (
|
14
|
+
key character varying NOT NULL,
|
15
|
+
value character varying,
|
16
|
+
created_at timestamp(6) without time zone NOT NULL,
|
17
|
+
updated_at timestamp(6) without time zone NOT NULL
|
18
|
+
);
|
19
|
+
|
20
|
+
-- Name: delayed_jobs; Type: TABLE
|
21
|
+
|
22
|
+
CREATE TABLE public.delayed_jobs (
|
23
|
+
id BIGSERIAL PRIMARY KEY,
|
24
|
+
priority integer DEFAULT 0,
|
25
|
+
attempts integer DEFAULT 0,
|
26
|
+
handler text,
|
27
|
+
last_error text,
|
28
|
+
run_at timestamp without time zone,
|
29
|
+
locked_at timestamp without time zone,
|
30
|
+
failed_at timestamp without time zone,
|
31
|
+
locked_by character varying(255),
|
32
|
+
queue character varying(255),
|
33
|
+
created_at timestamp without time zone NOT NULL,
|
34
|
+
updated_at timestamp without time zone NOT NULL,
|
35
|
+
metadata jsonb DEFAULT '{}'::jsonb,
|
36
|
+
whodunnit text
|
37
|
+
)
|
38
|
+
WITH (fillfactor='85');
|
39
|
+
|
40
|
+
-- Name: schema_migrations; Type: TABLE
|
41
|
+
|
42
|
+
CREATE TABLE public.schema_migrations (
|
43
|
+
version character varying NOT NULL
|
44
|
+
);
|
45
|
+
|
46
|
+
ALTER TABLE ONLY public.ar_internal_metadata
|
47
|
+
ADD CONSTRAINT ar_internal_metadata_pkey PRIMARY KEY (key);
|
48
|
+
|
49
|
+
ALTER TABLE ONLY public.schema_migrations
|
50
|
+
ADD CONSTRAINT schema_migrations_pkey PRIMARY KEY (version);
|
51
|
+
|
52
|
+
-- Name: index_delayed_jobs_on_locked_by; Type: INDEX
|
53
|
+
|
54
|
+
CREATE INDEX index_delayed_jobs_on_locked_by ON public.delayed_jobs USING btree (locked_by);
|
55
|
+
|
56
|
+
-- Name: index_delayed_jobs_on_queue; Type: INDEX
|
57
|
+
|
58
|
+
CREATE INDEX index_delayed_jobs_on_queue ON public.delayed_jobs USING btree (queue);
|
59
|
+
|
60
|
+
-- Name: index_delayed_jobs_on_run_at; Type: INDEX
|
61
|
+
|
62
|
+
CREATE INDEX index_delayed_jobs_on_run_at ON public.delayed_jobs USING btree (run_at) WHERE (locked_at IS NULL);
|
63
|
+
|
64
|
+
-- PostgreSQL database dump complete
|
65
|
+
|
66
|
+
SET search_path TO "$user", public;
|
67
|
+
|
68
|
+
INSERT INTO "schema_migrations" (version) VALUES
|
69
|
+
('20240822225012'),
|
70
|
+
('20240822224954'),
|
71
|
+
('20240725043656'),
|
72
|
+
('20240621041110'),
|
73
|
+
('20240621020038'),
|
74
|
+
('20220802204003'),
|
75
|
+
('20211125055031'),
|
76
|
+
('20211012054749'),
|
77
|
+
('20210923052631'),
|
78
|
+
('20210903003251');
|
@@ -0,0 +1,104 @@
|
|
1
|
+
SET statement_timeout = 0;
|
2
|
+
SET lock_timeout = 0;
|
3
|
+
SET client_encoding = 'UTF8';
|
4
|
+
SET standard_conforming_strings = on;
|
5
|
+
SELECT pg_catalog.set_config('search_path', '', false);
|
6
|
+
SET check_function_bodies = false;
|
7
|
+
SET client_min_messages = warning;
|
8
|
+
|
9
|
+
SET default_tablespace = '';
|
10
|
+
|
11
|
+
-- Name: ar_internal_metadata; Type: TABLE
|
12
|
+
|
13
|
+
CREATE TABLE public.ar_internal_metadata (
|
14
|
+
key character varying NOT NULL,
|
15
|
+
value character varying,
|
16
|
+
created_at timestamp(6) without time zone NOT NULL,
|
17
|
+
updated_at timestamp(6) without time zone NOT NULL
|
18
|
+
);
|
19
|
+
|
20
|
+
-- Name: delayed_jobs; Type: TABLE
|
21
|
+
|
22
|
+
CREATE TABLE public.delayed_jobs (
|
23
|
+
id bigint NOT NULL,
|
24
|
+
priority integer DEFAULT 0,
|
25
|
+
attempts integer DEFAULT 0,
|
26
|
+
handler text,
|
27
|
+
last_error text,
|
28
|
+
run_at timestamp without time zone,
|
29
|
+
locked_at timestamp without time zone,
|
30
|
+
failed_at timestamp without time zone,
|
31
|
+
locked_by character varying(255),
|
32
|
+
queue character varying(255),
|
33
|
+
created_at timestamp without time zone NOT NULL,
|
34
|
+
updated_at timestamp without time zone NOT NULL,
|
35
|
+
metadata jsonb DEFAULT '{}'::jsonb,
|
36
|
+
whodunnit text
|
37
|
+
)
|
38
|
+
WITH (fillfactor='85');
|
39
|
+
|
40
|
+
-- Name: delayed_jobs_id_seq; Type: SEQUENCE
|
41
|
+
|
42
|
+
CREATE SEQUENCE public.delayed_jobs_id_seq
|
43
|
+
START WITH 1
|
44
|
+
INCREMENT BY 1
|
45
|
+
NO MINVALUE
|
46
|
+
NO MAXVALUE
|
47
|
+
CACHE 1;
|
48
|
+
|
49
|
+
-- Name: delayed_jobs_id_seq; Type: SEQUENCE OWNED BY
|
50
|
+
|
51
|
+
ALTER SEQUENCE public.delayed_jobs_id_seq OWNED BY public.delayed_jobs.id;
|
52
|
+
|
53
|
+
-- Name: schema_migrations; Type: TABLE
|
54
|
+
|
55
|
+
CREATE TABLE public.schema_migrations (
|
56
|
+
version character varying NOT NULL
|
57
|
+
);
|
58
|
+
|
59
|
+
-- Name: delayed_jobs id; Type: DEFAULT
|
60
|
+
|
61
|
+
ALTER TABLE ONLY public.delayed_jobs ALTER COLUMN id SET DEFAULT nextval('public.delayed_jobs_id_seq'::regclass);
|
62
|
+
|
63
|
+
-- Name: ar_internal_metadata ar_internal_metadata_pkey; Type: CONSTRAINT
|
64
|
+
|
65
|
+
ALTER TABLE ONLY public.ar_internal_metadata
|
66
|
+
ADD CONSTRAINT ar_internal_metadata_pkey PRIMARY KEY (key);
|
67
|
+
|
68
|
+
-- Name: delayed_jobs delayed_jobs_pkey; Type: CONSTRAINT
|
69
|
+
|
70
|
+
ALTER TABLE ONLY public.delayed_jobs
|
71
|
+
ADD CONSTRAINT delayed_jobs_pkey PRIMARY KEY (id);
|
72
|
+
|
73
|
+
-- Name: schema_migrations schema_migrations_pkey; Type: CONSTRAINT
|
74
|
+
|
75
|
+
ALTER TABLE ONLY public.schema_migrations
|
76
|
+
ADD CONSTRAINT schema_migrations_pkey PRIMARY KEY (version);
|
77
|
+
|
78
|
+
-- Name: index_delayed_jobs_on_locked_by; Type: INDEX
|
79
|
+
|
80
|
+
CREATE INDEX index_delayed_jobs_on_locked_by ON public.delayed_jobs USING btree (locked_by);
|
81
|
+
|
82
|
+
-- Name: index_delayed_jobs_on_queue; Type: INDEX
|
83
|
+
|
84
|
+
CREATE INDEX index_delayed_jobs_on_queue ON public.delayed_jobs USING btree (queue);
|
85
|
+
|
86
|
+
-- Name: index_delayed_jobs_on_run_at; Type: INDEX
|
87
|
+
|
88
|
+
CREATE INDEX index_delayed_jobs_on_run_at ON public.delayed_jobs USING btree (run_at) WHERE (locked_at IS NULL);
|
89
|
+
|
90
|
+
-- PostgreSQL database dump complete
|
91
|
+
|
92
|
+
SET search_path TO "$user", public;
|
93
|
+
|
94
|
+
INSERT INTO "schema_migrations" (version) VALUES
|
95
|
+
('20240822225012'),
|
96
|
+
('20240822224954'),
|
97
|
+
('20240725043656'),
|
98
|
+
('20240621041110'),
|
99
|
+
('20240621020038'),
|
100
|
+
('20220802204003'),
|
101
|
+
('20211125055031'),
|
102
|
+
('20211012054749'),
|
103
|
+
('20210923052631'),
|
104
|
+
('20210903003251');
|
@@ -0,0 +1,70 @@
|
|
1
|
+
SET statement_timeout = 0;
|
2
|
+
SET lock_timeout = 0;
|
3
|
+
SET client_encoding = 'UTF8';
|
4
|
+
SET standard_conforming_strings = on;
|
5
|
+
SELECT pg_catalog.set_config('search_path', '', false);
|
6
|
+
SET check_function_bodies = false;
|
7
|
+
SET client_min_messages = warning;
|
8
|
+
|
9
|
+
SET default_tablespace = '';
|
10
|
+
|
11
|
+
-- Name: ar_internal_metadata; Type: TABLE
|
12
|
+
|
13
|
+
CREATE TABLE public.ar_internal_metadata (
|
14
|
+
key character varying NOT NULL,
|
15
|
+
value character varying,
|
16
|
+
created_at timestamp(6) without time zone NOT NULL,
|
17
|
+
updated_at timestamp(6) without time zone NOT NULL
|
18
|
+
);
|
19
|
+
|
20
|
+
-- Name: delayed_jobs; Type: TABLE
|
21
|
+
|
22
|
+
CREATE TABLE public.delayed_jobs (
|
23
|
+
id BIGSERIAL PRIMARY KEY,
|
24
|
+
priority integer DEFAULT 0,
|
25
|
+
attempts integer DEFAULT 0,
|
26
|
+
handler text,
|
27
|
+
last_error text,
|
28
|
+
run_at timestamp without time zone,
|
29
|
+
locked_at timestamp without time zone,
|
30
|
+
failed_at timestamp without time zone,
|
31
|
+
locked_by character varying(255),
|
32
|
+
queue character varying(255),
|
33
|
+
created_at timestamp without time zone NOT NULL,
|
34
|
+
updated_at timestamp without time zone NOT NULL,
|
35
|
+
metadata jsonb DEFAULT '{}'::jsonb,
|
36
|
+
whodunnit text
|
37
|
+
)
|
38
|
+
WITH (fillfactor='85');
|
39
|
+
|
40
|
+
CREATE INDEX index_delayed_jobs_on_locked_by ON public.delayed_jobs USING btree (locked_by);
|
41
|
+
CREATE INDEX index_delayed_jobs_on_queue ON public.delayed_jobs USING btree (queue);
|
42
|
+
CREATE INDEX index_delayed_jobs_on_run_at ON public.delayed_jobs USING btree (run_at) WHERE (locked_at IS NULL);
|
43
|
+
|
44
|
+
-- Name: schema_migrations; Type: TABLE
|
45
|
+
|
46
|
+
CREATE TABLE public.schema_migrations (
|
47
|
+
version character varying NOT NULL
|
48
|
+
);
|
49
|
+
|
50
|
+
ALTER TABLE ONLY public.ar_internal_metadata
|
51
|
+
ADD CONSTRAINT ar_internal_metadata_pkey PRIMARY KEY (key);
|
52
|
+
|
53
|
+
ALTER TABLE ONLY public.schema_migrations
|
54
|
+
ADD CONSTRAINT schema_migrations_pkey PRIMARY KEY (version);
|
55
|
+
|
56
|
+
-- PostgreSQL database dump complete
|
57
|
+
|
58
|
+
SET search_path TO "$user", public;
|
59
|
+
|
60
|
+
INSERT INTO "schema_migrations" (version) VALUES
|
61
|
+
('20240822225012'),
|
62
|
+
('20240822224954'),
|
63
|
+
('20240725043656'),
|
64
|
+
('20240621041110'),
|
65
|
+
('20240621020038'),
|
66
|
+
('20220802204003'),
|
67
|
+
('20211125055031'),
|
68
|
+
('20211012054749'),
|
69
|
+
('20210923052631'),
|
70
|
+
('20210903003251');
|
@@ -0,0 +1,84 @@
|
|
1
|
+
SET statement_timeout = 0;
|
2
|
+
SET lock_timeout = 0;
|
3
|
+
SET client_encoding = 'UTF8';
|
4
|
+
SET standard_conforming_strings = on;
|
5
|
+
SELECT pg_catalog.set_config('search_path', '', false);
|
6
|
+
SET check_function_bodies = false;
|
7
|
+
SET client_min_messages = warning;
|
8
|
+
|
9
|
+
-- Name: pg_stat_statements; Type: EXTENSION
|
10
|
+
|
11
|
+
CREATE EXTENSION IF NOT EXISTS pg_stat_statements WITH SCHEMA public;
|
12
|
+
|
13
|
+
-- Name: EXTENSION pg_stat_statements; Type: COMMENT
|
14
|
+
|
15
|
+
SET default_tablespace = '';
|
16
|
+
|
17
|
+
-- Name: ar_internal_metadata; Type: TABLE
|
18
|
+
|
19
|
+
CREATE TABLE public.ar_internal_metadata (
|
20
|
+
key character varying NOT NULL,
|
21
|
+
value character varying,
|
22
|
+
created_at timestamp(6) without time zone NOT NULL,
|
23
|
+
updated_at timestamp(6) without time zone NOT NULL
|
24
|
+
);
|
25
|
+
|
26
|
+
-- Name: delayed_jobs; Type: TABLE
|
27
|
+
|
28
|
+
CREATE TABLE public.delayed_jobs (
|
29
|
+
id BIGSERIAL PRIMARY KEY,
|
30
|
+
priority integer DEFAULT 0,
|
31
|
+
attempts integer DEFAULT 0,
|
32
|
+
handler text,
|
33
|
+
last_error text,
|
34
|
+
run_at timestamp without time zone,
|
35
|
+
locked_at timestamp without time zone,
|
36
|
+
failed_at timestamp without time zone,
|
37
|
+
locked_by character varying(255),
|
38
|
+
queue character varying(255),
|
39
|
+
created_at timestamp without time zone NOT NULL,
|
40
|
+
updated_at timestamp without time zone NOT NULL,
|
41
|
+
metadata jsonb DEFAULT '{}'::jsonb,
|
42
|
+
whodunnit text
|
43
|
+
)
|
44
|
+
WITH (fillfactor='85');
|
45
|
+
|
46
|
+
-- Name: schema_migrations; Type: TABLE
|
47
|
+
|
48
|
+
CREATE TABLE public.schema_migrations (
|
49
|
+
version character varying NOT NULL
|
50
|
+
);
|
51
|
+
|
52
|
+
ALTER TABLE ONLY public.ar_internal_metadata
|
53
|
+
ADD CONSTRAINT ar_internal_metadata_pkey PRIMARY KEY (key);
|
54
|
+
|
55
|
+
ALTER TABLE ONLY public.schema_migrations
|
56
|
+
ADD CONSTRAINT schema_migrations_pkey PRIMARY KEY (version);
|
57
|
+
|
58
|
+
-- Name: index_delayed_jobs_on_locked_by; Type: INDEX
|
59
|
+
|
60
|
+
CREATE INDEX index_delayed_jobs_on_locked_by ON public.delayed_jobs USING btree (locked_by);
|
61
|
+
|
62
|
+
-- Name: index_delayed_jobs_on_queue; Type: INDEX
|
63
|
+
|
64
|
+
CREATE INDEX index_delayed_jobs_on_queue ON public.delayed_jobs USING btree (queue);
|
65
|
+
|
66
|
+
-- Name: index_delayed_jobs_on_run_at; Type: INDEX
|
67
|
+
|
68
|
+
CREATE INDEX index_delayed_jobs_on_run_at ON public.delayed_jobs USING btree (run_at) WHERE (locked_at IS NULL);
|
69
|
+
|
70
|
+
-- PostgreSQL database dump complete
|
71
|
+
|
72
|
+
SET search_path TO "$user", public;
|
73
|
+
|
74
|
+
INSERT INTO "schema_migrations" (version) VALUES
|
75
|
+
('20240822225012'),
|
76
|
+
('20240822224954'),
|
77
|
+
('20240725043656'),
|
78
|
+
('20240621041110'),
|
79
|
+
('20240621020038'),
|
80
|
+
('20220802204003'),
|
81
|
+
('20211125055031'),
|
82
|
+
('20211012054749'),
|
83
|
+
('20210923052631'),
|
84
|
+
('20210903003251');
|
@@ -0,0 +1,78 @@
|
|
1
|
+
SET statement_timeout = 0;
|
2
|
+
SET lock_timeout = 0;
|
3
|
+
SET client_encoding = 'UTF8';
|
4
|
+
SET standard_conforming_strings = on;
|
5
|
+
SELECT pg_catalog.set_config('search_path', '', false);
|
6
|
+
SET check_function_bodies = false;
|
7
|
+
SET client_min_messages = warning;
|
8
|
+
|
9
|
+
SET default_tablespace = '';
|
10
|
+
|
11
|
+
-- Name: ar_internal_metadata; Type: TABLE
|
12
|
+
|
13
|
+
CREATE TABLE public.ar_internal_metadata (
|
14
|
+
created_at timestamp(6) without time zone NOT NULL,
|
15
|
+
key character varying NOT NULL,
|
16
|
+
updated_at timestamp(6) without time zone NOT NULL,
|
17
|
+
value character varying
|
18
|
+
);
|
19
|
+
|
20
|
+
-- Name: delayed_jobs; Type: TABLE
|
21
|
+
|
22
|
+
CREATE TABLE public.delayed_jobs (
|
23
|
+
attempts integer DEFAULT 0,
|
24
|
+
created_at timestamp without time zone NOT NULL,
|
25
|
+
failed_at timestamp without time zone,
|
26
|
+
handler text,
|
27
|
+
id BIGSERIAL PRIMARY KEY,
|
28
|
+
last_error text,
|
29
|
+
locked_at timestamp without time zone,
|
30
|
+
locked_by character varying(255),
|
31
|
+
metadata jsonb DEFAULT '{}'::jsonb,
|
32
|
+
priority integer DEFAULT 0,
|
33
|
+
queue character varying(255),
|
34
|
+
run_at timestamp without time zone,
|
35
|
+
updated_at timestamp without time zone NOT NULL,
|
36
|
+
whodunnit text
|
37
|
+
)
|
38
|
+
WITH (fillfactor='85');
|
39
|
+
|
40
|
+
-- Name: schema_migrations; Type: TABLE
|
41
|
+
|
42
|
+
CREATE TABLE public.schema_migrations (
|
43
|
+
version character varying NOT NULL
|
44
|
+
);
|
45
|
+
|
46
|
+
ALTER TABLE ONLY public.ar_internal_metadata
|
47
|
+
ADD CONSTRAINT ar_internal_metadata_pkey PRIMARY KEY (key);
|
48
|
+
|
49
|
+
ALTER TABLE ONLY public.schema_migrations
|
50
|
+
ADD CONSTRAINT schema_migrations_pkey PRIMARY KEY (version);
|
51
|
+
|
52
|
+
-- Name: index_delayed_jobs_on_locked_by; Type: INDEX
|
53
|
+
|
54
|
+
CREATE INDEX index_delayed_jobs_on_locked_by ON public.delayed_jobs USING btree (locked_by);
|
55
|
+
|
56
|
+
-- Name: index_delayed_jobs_on_queue; Type: INDEX
|
57
|
+
|
58
|
+
CREATE INDEX index_delayed_jobs_on_queue ON public.delayed_jobs USING btree (queue);
|
59
|
+
|
60
|
+
-- Name: index_delayed_jobs_on_run_at; Type: INDEX
|
61
|
+
|
62
|
+
CREATE INDEX index_delayed_jobs_on_run_at ON public.delayed_jobs USING btree (run_at) WHERE (locked_at IS NULL);
|
63
|
+
|
64
|
+
-- PostgreSQL database dump complete
|
65
|
+
|
66
|
+
SET search_path TO "$user", public;
|
67
|
+
|
68
|
+
INSERT INTO "schema_migrations" (version) VALUES
|
69
|
+
('20240822225012'),
|
70
|
+
('20240822224954'),
|
71
|
+
('20240725043656'),
|
72
|
+
('20240621041110'),
|
73
|
+
('20240621020038'),
|
74
|
+
('20220802204003'),
|
75
|
+
('20211125055031'),
|
76
|
+
('20211012054749'),
|
77
|
+
('20210923052631'),
|
78
|
+
('20210903003251');
|
@@ -0,0 +1,80 @@
|
|
1
|
+
SET statement_timeout = 0;
|
2
|
+
SET lock_timeout = 0;
|
3
|
+
SET client_encoding = 'UTF8';
|
4
|
+
SET standard_conforming_strings = on;
|
5
|
+
SELECT pg_catalog.set_config('search_path', '', false);
|
6
|
+
SET check_function_bodies = false;
|
7
|
+
SET client_min_messages = warning;
|
8
|
+
|
9
|
+
SET default_tablespace = '';
|
10
|
+
|
11
|
+
-- Name: ar_internal_metadata; Type: TABLE
|
12
|
+
|
13
|
+
CREATE TABLE public.ar_internal_metadata (
|
14
|
+
key character varying NOT NULL,
|
15
|
+
value character varying,
|
16
|
+
created_at timestamp(6) without time zone NOT NULL,
|
17
|
+
updated_at timestamp(6) without time zone NOT NULL
|
18
|
+
);
|
19
|
+
|
20
|
+
-- Name: delayed_jobs; Type: TABLE
|
21
|
+
|
22
|
+
CREATE TABLE public.delayed_jobs (
|
23
|
+
id BIGSERIAL PRIMARY KEY,
|
24
|
+
priority integer DEFAULT 0,
|
25
|
+
attempts integer DEFAULT 0,
|
26
|
+
handler text,
|
27
|
+
last_error text,
|
28
|
+
run_at timestamp without time zone,
|
29
|
+
locked_at timestamp without time zone,
|
30
|
+
failed_at timestamp without time zone,
|
31
|
+
locked_by character varying(255),
|
32
|
+
queue character varying(255),
|
33
|
+
created_at timestamp without time zone NOT NULL,
|
34
|
+
updated_at timestamp without time zone NOT NULL,
|
35
|
+
metadata jsonb DEFAULT '{}'::jsonb,
|
36
|
+
whodunnit text
|
37
|
+
)
|
38
|
+
WITH (fillfactor='85');
|
39
|
+
|
40
|
+
-- Name: schema_migrations; Type: TABLE
|
41
|
+
|
42
|
+
CREATE TABLE public.schema_migrations (
|
43
|
+
version character varying NOT NULL
|
44
|
+
);
|
45
|
+
|
46
|
+
ALTER TABLE ONLY public.ar_internal_metadata
|
47
|
+
ADD CONSTRAINT ar_internal_metadata_pkey PRIMARY KEY (key);
|
48
|
+
|
49
|
+
ALTER TABLE ONLY public.schema_migrations
|
50
|
+
ADD CONSTRAINT schema_migrations_pkey PRIMARY KEY (version);
|
51
|
+
|
52
|
+
-- Name: index_delayed_jobs_on_locked_by; Type: INDEX
|
53
|
+
|
54
|
+
CREATE INDEX index_delayed_jobs_on_locked_by ON public.delayed_jobs USING btree (locked_by);
|
55
|
+
|
56
|
+
-- Name: index_delayed_jobs_on_queue; Type: INDEX
|
57
|
+
|
58
|
+
CREATE INDEX index_delayed_jobs_on_queue ON public.delayed_jobs USING btree (queue);
|
59
|
+
|
60
|
+
-- Name: index_delayed_jobs_on_run_at; Type: INDEX
|
61
|
+
|
62
|
+
CREATE INDEX index_delayed_jobs_on_run_at ON public.delayed_jobs USING btree (run_at) WHERE (locked_at IS NULL);
|
63
|
+
|
64
|
+
-- PostgreSQL database dump complete
|
65
|
+
|
66
|
+
SET search_path TO "$user", public;
|
67
|
+
|
68
|
+
INSERT INTO "schema_migrations" (version) VALUES
|
69
|
+
('20210903003251')
|
70
|
+
,('20210923052631')
|
71
|
+
,('20211012054749')
|
72
|
+
,('20211125055031')
|
73
|
+
,('20220802204003')
|
74
|
+
,('20240621020038')
|
75
|
+
,('20240621041110')
|
76
|
+
,('20240725043656')
|
77
|
+
,('20240822224954')
|
78
|
+
,('20240822225012')
|
79
|
+
;
|
80
|
+
|
data/test/test_helper.rb
ADDED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-clean-db-structure
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lukas Fittl
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -44,6 +44,7 @@ executables: []
|
|
44
44
|
extensions: []
|
45
45
|
extra_rdoc_files: []
|
46
46
|
files:
|
47
|
+
- ".github/workflows/ci.yml"
|
47
48
|
- ".gitignore"
|
48
49
|
- CHANGELOG.md
|
49
50
|
- Gemfile
|
@@ -57,11 +58,20 @@ files:
|
|
57
58
|
- lib/activerecord-clean-db-structure/railtie.rb
|
58
59
|
- lib/activerecord-clean-db-structure/tasks/clean_db_structure.rake
|
59
60
|
- lib/activerecord-clean-db-structure/version.rb
|
61
|
+
- test/clean_dump_test.rb
|
62
|
+
- test/data/input.sql
|
63
|
+
- test/expectations/default_props.sql
|
64
|
+
- test/expectations/ignore_ids.sql
|
65
|
+
- test/expectations/indexes_after_tables.sql
|
66
|
+
- test/expectations/keep_extensions_all.sql
|
67
|
+
- test/expectations/order_column_definitions.sql
|
68
|
+
- test/expectations/order_schema_migrations_values.sql
|
69
|
+
- test/test_helper.rb
|
60
70
|
homepage: https://github.com/lfittl/activerecord-clean-db-structure
|
61
71
|
licenses:
|
62
72
|
- MIT
|
63
73
|
metadata: {}
|
64
|
-
post_install_message:
|
74
|
+
post_install_message:
|
65
75
|
rdoc_options: []
|
66
76
|
require_paths:
|
67
77
|
- lib
|
@@ -76,8 +86,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
76
86
|
- !ruby/object:Gem::Version
|
77
87
|
version: '0'
|
78
88
|
requirements: []
|
79
|
-
rubygems_version: 3.1
|
80
|
-
signing_key:
|
89
|
+
rubygems_version: 3.0.3.1
|
90
|
+
signing_key:
|
81
91
|
specification_version: 4
|
82
92
|
summary: Automatic cleanup for the Rails db/structure.sql file (ActiveRecord/PostgreSQL)
|
83
93
|
test_files: []
|