convergence 1.0.6 → 1.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 (77) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +35 -4
  3. data/.gitignore +1 -0
  4. data/CHANGELOG.md +57 -0
  5. data/CONTRIBUTING.md +80 -0
  6. data/Gemfile.lock +25 -9
  7. data/README.md +160 -1
  8. data/Rakefile +45 -2
  9. data/convergence.gemspec +5 -1
  10. data/lib/convergence/cli.rb +10 -2
  11. data/lib/convergence/column.rb +3 -2
  12. data/lib/convergence/command/apply.rb +38 -9
  13. data/lib/convergence/command/dryrun.rb +5 -5
  14. data/lib/convergence/command/export.rb +19 -1
  15. data/lib/convergence/command.rb +6 -0
  16. data/lib/convergence/database_connector/postgres_connector.rb +25 -0
  17. data/lib/convergence/database_connector/sqlite_connector.rb +22 -0
  18. data/lib/convergence/database_connector.rb +6 -0
  19. data/lib/convergence/default_parameter/mysql_default_parameter.rb +1 -1
  20. data/lib/convergence/default_parameter/postgres_default_parameter.rb +57 -0
  21. data/lib/convergence/default_parameter/sqlite_default_parameter.rb +57 -0
  22. data/lib/convergence/default_parameter.rb +6 -0
  23. data/lib/convergence/diff.rb +46 -3
  24. data/lib/convergence/dsl.rb +18 -3
  25. data/lib/convergence/dumper/mysql_schema_dumper.rb +37 -9
  26. data/lib/convergence/dumper/postgres_schema_dumper.rb +193 -0
  27. data/lib/convergence/dumper/sqlite_schema_dumper.rb +132 -0
  28. data/lib/convergence/dumper.rb +113 -0
  29. data/lib/convergence/sql_generator/mysql_generator.rb +32 -3
  30. data/lib/convergence/sql_generator/postgres_generator.rb +270 -0
  31. data/lib/convergence/sql_generator/sqlite_generator.rb +192 -0
  32. data/lib/convergence/table.rb +3 -2
  33. data/lib/convergence/version.rb +1 -1
  34. data/spec/config/spec_database.yml +12 -0
  35. data/spec/convergence/config_spec.rb +75 -0
  36. data/spec/convergence/diff_spec.rb +291 -44
  37. data/spec/convergence/dsl_spec.rb +26 -0
  38. data/spec/convergence/dumper/mysql_schema_dumper_spec.rb +25 -2
  39. data/spec/convergence/dumper/postgres_schema_dumper_spec.rb +103 -0
  40. data/spec/convergence/dumper/sqlite_schema_dumper_spec.rb +85 -0
  41. data/spec/convergence/dumper_spec.rb +110 -16
  42. data/spec/convergence/foreign_key_spec.rb +33 -0
  43. data/spec/convergence/index_spec.rb +52 -0
  44. data/spec/convergence/pretty_diff_spec.rb +85 -0
  45. data/spec/convergence/table_spec.rb +46 -0
  46. data/spec/fixtures/add_table_with_enum_set.schema +5 -0
  47. data/spec/fixtures/change_table_comment_to_paper.schema +2 -0
  48. data/spec/fixtures/execute_raw_sql.schema +28 -0
  49. data/spec/fixtures/postgres/add_columns_to_paper.schema +29 -0
  50. data/spec/fixtures/postgres/add_table.schema +32 -0
  51. data/spec/fixtures/postgres/change_comment_columns_to_paper.schema +28 -0
  52. data/spec/fixtures/postgres/change_table_comment_to_paper.schema +28 -0
  53. data/spec/fixtures/postgres/drop_foreign_key.schema +25 -0
  54. data/spec/fixtures/postgres/drop_table.schema +19 -0
  55. data/spec/fixtures/postgres/remove_columns_to_paper.schema +27 -0
  56. data/spec/fixtures/postgres/rename_column_on_paper.schema +28 -0
  57. data/spec/fixtures/postgres/rename_table.schema +28 -0
  58. data/spec/fixtures/postgres_test_db.sql +41 -0
  59. data/spec/fixtures/rename_column_to_author.schema +26 -0
  60. data/spec/fixtures/rename_table.schema +26 -0
  61. data/spec/fixtures/sqlite/add_columns_to_paper.schema +29 -0
  62. data/spec/fixtures/sqlite/add_table.schema +32 -0
  63. data/spec/fixtures/sqlite/change_columns_to_paper.schema +28 -0
  64. data/spec/fixtures/sqlite/drop_foreign_key.schema +25 -0
  65. data/spec/fixtures/sqlite/drop_table.schema +19 -0
  66. data/spec/fixtures/sqlite/remove_columns_to_paper.schema +27 -0
  67. data/spec/fixtures/sqlite/rename_column_on_paper.schema +28 -0
  68. data/spec/fixtures/sqlite/rename_table.schema +27 -0
  69. data/spec/fixtures/sqlite_test_db.sql +31 -0
  70. data/spec/fixtures/test_db.sql +10 -0
  71. data/spec/integrations/command_diff.rb +35 -0
  72. data/spec/integrations/command_dryrun.rb +59 -2
  73. data/spec/integrations/command_export.rb +28 -0
  74. data/spec/postgres_integrations/command_dryrun.rb +101 -0
  75. data/spec/spec_helper.rb +13 -0
  76. data/spec/sqlite_integrations/command_dryrun.rb +92 -0
  77. metadata +135 -7
@@ -0,0 +1,101 @@
1
+ require 'spec_helper'
2
+ require 'convergence/command/dryrun'
3
+
4
+ describe 'PostgreSQL Command::Dryrun#execute' do
5
+ def execute(dsl_path, extra_options = {})
6
+ parse_option = {
7
+ input: File.expand_path("#{File.dirname(__FILE__)}/../fixtures/postgres/#{dsl_path}")
8
+ }.merge(extra_options)
9
+ Convergence::Command::Dryrun.new(parse_option, config: postgres_settings).execute
10
+ end
11
+
12
+ describe 'change table options' do
13
+ let(:exec_dsl) { 'change_table_comment_to_paper.schema' }
14
+
15
+ it 'should be output alter table query' do
16
+ result = execute(exec_dsl)
17
+ expect(result).to be_include(%(# COMMENT ON TABLE "authors" IS 'Author Table';))
18
+ end
19
+ end
20
+
21
+ describe 'add table' do
22
+ let(:exec_dsl) { 'add_table.schema' }
23
+
24
+ it 'should be output create table query' do
25
+ result = execute(exec_dsl)
26
+ expect(result).to be_include(%(# "id" integer NOT NULL GENERATED BY DEFAULT AS IDENTITY,))
27
+ expect(result).to be_include(%(# COMMENT ON TABLE "dummies" IS 'Dummy Table';))
28
+ expect(result).to be_include(%(# COMMENT ON COLUMN "dummies"."id" IS 'Hello Convergence';))
29
+ end
30
+ end
31
+
32
+ describe 'drop table' do
33
+ let(:exec_dsl) { 'drop_table.schema' }
34
+
35
+ it 'should be output drop table query' do
36
+ result = execute(exec_dsl)
37
+ expect(result).to be_include('DROP TABLE "paper_authors";')
38
+ end
39
+ end
40
+
41
+ describe 'add columns' do
42
+ let(:exec_dsl) { 'add_columns_to_paper.schema' }
43
+
44
+ it 'should be output alter add column query' do
45
+ result = execute(exec_dsl)
46
+ expect(result).to be_include(%(# ALTER TABLE "papers" ADD COLUMN "subtitle" varchar DEFAULT NULL;))
47
+ end
48
+ end
49
+
50
+ describe 'remove columns' do
51
+ let(:exec_dsl) { 'remove_columns_to_paper.schema' }
52
+
53
+ it 'should be output alter drop column query' do
54
+ result = execute(exec_dsl)
55
+ expect(result).to be_include(%(# ALTER TABLE "papers" DROP COLUMN "description";))
56
+ end
57
+ end
58
+
59
+ describe 'change columns' do
60
+ describe 'change comment' do
61
+ let(:exec_dsl) { 'change_comment_columns_to_paper.schema' }
62
+
63
+ it 'should be output alter table column query' do
64
+ result = execute(exec_dsl)
65
+ expect(result).to be_include(%(# COMMENT ON COLUMN "authors"."created_at" IS 'Created At';))
66
+ end
67
+ end
68
+ end
69
+
70
+ describe 'rename column' do
71
+ let(:exec_dsl) { 'rename_column_on_paper.schema' }
72
+
73
+ it 'should be output rename column query, not drop+add' do
74
+ result = execute(exec_dsl)
75
+ expect(result).to be_include(%(# ALTER TABLE "papers" RENAME COLUMN "description" TO "notes";))
76
+ expect(result).not_to be_include('DROP COLUMN "description"')
77
+ expect(result).not_to be_include('ADD COLUMN "notes"')
78
+ end
79
+ end
80
+
81
+ describe 'rename table' do
82
+ let(:exec_dsl) { 'rename_table.schema' }
83
+
84
+ it 'should be output rename table query, not drop+add' do
85
+ result = execute(exec_dsl)
86
+ expect(result).to be_include(%(# ALTER TABLE "paper_authors" RENAME TO "paper_author_links";))
87
+ expect(result).not_to be_include('DROP TABLE "paper_authors"')
88
+ expect(result).not_to be_include('CREATE TABLE "paper_author_links"')
89
+ end
90
+ end
91
+
92
+ describe 'drop foreign key' do
93
+ let(:exec_dsl) { 'drop_foreign_key.schema' }
94
+
95
+ it 'should be output drop foreign key query' do
96
+ result = execute(exec_dsl)
97
+ expect(result).to be_include(%(# ALTER TABLE "paper_authors" DROP CONSTRAINT "paper_authors_author_id_fk";))
98
+ expect(result).to be_include(%(# ALTER TABLE "paper_authors" DROP CONSTRAINT "paper_authors_paper_id_fk";))
99
+ end
100
+ end
101
+ end
data/spec/spec_helper.rb CHANGED
@@ -5,6 +5,8 @@ require 'pry'
5
5
  require 'convergence'
6
6
  require 'convergence/database_connector'
7
7
  Dir["#{File.dirname(__FILE__)}/integrations/**/*.rb"].each { |f| require f }
8
+ Dir["#{File.dirname(__FILE__)}/postgres_integrations/**/*.rb"].each { |f| require f }
9
+ Dir["#{File.dirname(__FILE__)}/sqlite_integrations/**/*.rb"].each { |f| require f }
8
10
 
9
11
  $default_output = File.open('/dev/null', 'w')
10
12
 
@@ -13,6 +15,17 @@ def mysql_settings
13
15
  Convergence::Config.new(Hash[mysql_settings.map { |k, v| [k.to_sym, v] }])
14
16
  end
15
17
 
18
+ def postgres_settings
19
+ postgres_settings = YAML.load_file("#{File.dirname(__FILE__)}/config/spec_database.yml")['postgresql']
20
+ Convergence::Config.new(Hash[postgres_settings.map { |k, v| [k.to_sym, v] }])
21
+ end
22
+
23
+ def sqlite_settings
24
+ sqlite_settings = YAML.load_file("#{File.dirname(__FILE__)}/config/spec_database.yml")['sqlite3']
25
+ database_path = File.expand_path("#{File.dirname(__FILE__)}/fixtures/#{sqlite_settings['database']}")
26
+ Convergence::Config.new(adapter: sqlite_settings['adapter'], database: database_path)
27
+ end
28
+
16
29
  def rollback
17
30
  # FIXME But I have no idea to rollback create/drop/alter table of mysql
18
31
  sqls = File.open("#{File.dirname(__FILE__)}/fixtures/test_db.sql")
@@ -0,0 +1,92 @@
1
+ require 'spec_helper'
2
+ require 'convergence/command/dryrun'
3
+
4
+ describe 'SQLite Command::Dryrun#execute' do
5
+ def execute(dsl_path, extra_options = {})
6
+ parse_option = {
7
+ input: File.expand_path("#{File.dirname(__FILE__)}/../fixtures/sqlite/#{dsl_path}")
8
+ }.merge(extra_options)
9
+ Convergence::Command::Dryrun.new(parse_option, config: sqlite_settings).execute
10
+ end
11
+
12
+ describe 'add table' do
13
+ let(:exec_dsl) { 'add_table.schema' }
14
+
15
+ it 'should be output create table query' do
16
+ result = execute(exec_dsl)
17
+ expect(result).to be_include(%(# CREATE TABLE "dummies" (\n# "id" INTEGER PRIMARY KEY AUTOINCREMENT\n# );))
18
+ end
19
+ end
20
+
21
+ describe 'drop table' do
22
+ let(:exec_dsl) { 'drop_table.schema' }
23
+
24
+ it 'should be output drop table query' do
25
+ result = execute(exec_dsl)
26
+ expect(result).to be_include('DROP TABLE "paper_authors";')
27
+ end
28
+
29
+ context 'when safe_migration is enabled' do
30
+ it 'should not output drop table query' do
31
+ result = execute(exec_dsl, safe_migration: true)
32
+ expect(result).not_to be_include('DROP TABLE "paper_authors";')
33
+ end
34
+ end
35
+ end
36
+
37
+ describe 'add columns' do
38
+ let(:exec_dsl) { 'add_columns_to_paper.schema' }
39
+
40
+ it 'should be output alter add column query' do
41
+ result = execute(exec_dsl)
42
+ expect(result).to be_include(%(# ALTER TABLE "papers" ADD COLUMN "subtitle" varchar;))
43
+ end
44
+ end
45
+
46
+ describe 'remove columns' do
47
+ let(:exec_dsl) { 'remove_columns_to_paper.schema' }
48
+
49
+ it 'should be output alter drop column query' do
50
+ result = execute(exec_dsl)
51
+ expect(result).to be_include(%(# ALTER TABLE "papers" DROP COLUMN "description";))
52
+ end
53
+ end
54
+
55
+ describe 'change columns' do
56
+ let(:exec_dsl) { 'change_columns_to_paper.schema' }
57
+
58
+ it 'should raise NotImplementedError since SQLite cannot ALTER a column in place' do
59
+ expect { execute(exec_dsl) }.to raise_error(NotImplementedError, /does not support changing column/)
60
+ end
61
+ end
62
+
63
+ describe 'rename column' do
64
+ let(:exec_dsl) { 'rename_column_on_paper.schema' }
65
+
66
+ it 'should be output rename column query, not drop+add' do
67
+ result = execute(exec_dsl)
68
+ expect(result).to be_include(%(# ALTER TABLE "papers" RENAME COLUMN "description" TO "notes";))
69
+ expect(result).not_to be_include('DROP COLUMN "description"')
70
+ expect(result).not_to be_include('ADD COLUMN "notes"')
71
+ end
72
+ end
73
+
74
+ describe 'rename table' do
75
+ let(:exec_dsl) { 'rename_table.schema' }
76
+
77
+ it 'should be output rename table query, not drop+add' do
78
+ result = execute(exec_dsl)
79
+ expect(result).to be_include(%(# ALTER TABLE "paper_authors" RENAME TO "paper_author_links";))
80
+ expect(result).not_to be_include('DROP TABLE "paper_authors"')
81
+ expect(result).not_to be_include('CREATE TABLE "paper_author_links"')
82
+ end
83
+ end
84
+
85
+ describe 'drop foreign key' do
86
+ let(:exec_dsl) { 'drop_foreign_key.schema' }
87
+
88
+ it 'should raise NotImplementedError since SQLite cannot drop a foreign key in place' do
89
+ expect { execute(exec_dsl) }.to raise_error(NotImplementedError, /does not support removing a foreign key/)
90
+ end
91
+ end
92
+ end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: convergence
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shinsuke Nishio
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2022-04-28 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: mysql2
@@ -24,6 +23,34 @@ dependencies:
24
23
  - - ">="
25
24
  - !ruby/object:Gem::Version
26
25
  version: '0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: pg
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: sqlite3
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
27
54
  - !ruby/object:Gem::Dependency
28
55
  name: diff-lcs
29
56
  requirement: !ruby/object:Gem::Requirement
@@ -40,6 +67,20 @@ dependencies:
40
67
  version: '0'
41
68
  - !ruby/object:Gem::Dependency
42
69
  name: diffy
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 3.4.2
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: 3.4.2
82
+ - !ruby/object:Gem::Dependency
83
+ name: thor
43
84
  requirement: !ruby/object:Gem::Requirement
44
85
  requirements:
45
86
  - - ">="
@@ -53,7 +94,21 @@ dependencies:
53
94
  - !ruby/object:Gem::Version
54
95
  version: '0'
55
96
  - !ruby/object:Gem::Dependency
56
- name: thor
97
+ name: logger
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: benchmark
57
112
  requirement: !ruby/object:Gem::Requirement
58
113
  requirements:
59
114
  - - ">="
@@ -163,6 +218,7 @@ files:
163
218
  - ".rspec"
164
219
  - ".rubocop.yml"
165
220
  - CHANGELOG.md
221
+ - CONTRIBUTING.md
166
222
  - Gemfile
167
223
  - Gemfile.lock
168
224
  - Guardfile
@@ -184,12 +240,18 @@ files:
184
240
  - lib/convergence/config.rb
185
241
  - lib/convergence/database_connector.rb
186
242
  - lib/convergence/database_connector/mysql_connector.rb
243
+ - lib/convergence/database_connector/postgres_connector.rb
244
+ - lib/convergence/database_connector/sqlite_connector.rb
187
245
  - lib/convergence/default_parameter.rb
188
246
  - lib/convergence/default_parameter/mysql_default_parameter.rb
247
+ - lib/convergence/default_parameter/postgres_default_parameter.rb
248
+ - lib/convergence/default_parameter/sqlite_default_parameter.rb
189
249
  - lib/convergence/diff.rb
190
250
  - lib/convergence/dsl.rb
191
251
  - lib/convergence/dumper.rb
192
252
  - lib/convergence/dumper/mysql_schema_dumper.rb
253
+ - lib/convergence/dumper/postgres_schema_dumper.rb
254
+ - lib/convergence/dumper/sqlite_schema_dumper.rb
193
255
  - lib/convergence/foreign_key.rb
194
256
  - lib/convergence/index.rb
195
257
  - lib/convergence/logger.rb
@@ -197,31 +259,65 @@ files:
197
259
  - lib/convergence/pretty_diff.rb
198
260
  - lib/convergence/sql_generator.rb
199
261
  - lib/convergence/sql_generator/mysql_generator.rb
262
+ - lib/convergence/sql_generator/postgres_generator.rb
263
+ - lib/convergence/sql_generator/sqlite_generator.rb
200
264
  - lib/convergence/table.rb
201
265
  - lib/convergence/version.rb
202
266
  - spec/config/spec_database.yml
267
+ - spec/convergence/config_spec.rb
203
268
  - spec/convergence/diff_spec.rb
204
269
  - spec/convergence/dsl_spec.rb
205
270
  - spec/convergence/dumper/mysql_schema_dumper_spec.rb
271
+ - spec/convergence/dumper/postgres_schema_dumper_spec.rb
272
+ - spec/convergence/dumper/sqlite_schema_dumper_spec.rb
206
273
  - spec/convergence/dumper_spec.rb
274
+ - spec/convergence/foreign_key_spec.rb
275
+ - spec/convergence/index_spec.rb
276
+ - spec/convergence/pretty_diff_spec.rb
207
277
  - spec/convergence/table_spec.rb
208
278
  - spec/fixtures/add_columns_to_paper.schema
209
279
  - spec/fixtures/add_table.schema
280
+ - spec/fixtures/add_table_with_enum_set.schema
210
281
  - spec/fixtures/change_comment_columns_to_paper.schema
211
282
  - spec/fixtures/change_foreign_key.schema
212
283
  - spec/fixtures/change_table_comment_to_paper.schema
213
284
  - spec/fixtures/drop_foreign_key.schema
214
285
  - spec/fixtures/drop_table.schema
286
+ - spec/fixtures/execute_raw_sql.schema
287
+ - spec/fixtures/postgres/add_columns_to_paper.schema
288
+ - spec/fixtures/postgres/add_table.schema
289
+ - spec/fixtures/postgres/change_comment_columns_to_paper.schema
290
+ - spec/fixtures/postgres/change_table_comment_to_paper.schema
291
+ - spec/fixtures/postgres/drop_foreign_key.schema
292
+ - spec/fixtures/postgres/drop_table.schema
293
+ - spec/fixtures/postgres/remove_columns_to_paper.schema
294
+ - spec/fixtures/postgres/rename_column_on_paper.schema
295
+ - spec/fixtures/postgres/rename_table.schema
296
+ - spec/fixtures/postgres_test_db.sql
215
297
  - spec/fixtures/remove_columns_to_paper.schema
298
+ - spec/fixtures/rename_column_to_author.schema
299
+ - spec/fixtures/rename_table.schema
300
+ - spec/fixtures/sqlite/add_columns_to_paper.schema
301
+ - spec/fixtures/sqlite/add_table.schema
302
+ - spec/fixtures/sqlite/change_columns_to_paper.schema
303
+ - spec/fixtures/sqlite/drop_foreign_key.schema
304
+ - spec/fixtures/sqlite/drop_table.schema
305
+ - spec/fixtures/sqlite/remove_columns_to_paper.schema
306
+ - spec/fixtures/sqlite/rename_column_on_paper.schema
307
+ - spec/fixtures/sqlite/rename_table.schema
308
+ - spec/fixtures/sqlite_test_db.sql
216
309
  - spec/fixtures/test_db.sql
310
+ - spec/integrations/command_diff.rb
217
311
  - spec/integrations/command_dryrun.rb
312
+ - spec/integrations/command_export.rb
218
313
  - spec/integrations/drop_foreign_key.rb
314
+ - spec/postgres_integrations/command_dryrun.rb
219
315
  - spec/spec_helper.rb
316
+ - spec/sqlite_integrations/command_dryrun.rb
220
317
  homepage: https://github.com/nishio-dens/convergence
221
318
  licenses:
222
319
  - MIT
223
320
  metadata: {}
224
- post_install_message:
225
321
  rdoc_options: []
226
322
  require_paths:
227
323
  - lib
@@ -236,26 +332,58 @@ required_rubygems_version: !ruby/object:Gem::Requirement
236
332
  - !ruby/object:Gem::Version
237
333
  version: '0'
238
334
  requirements: []
239
- rubygems_version: 3.2.32
240
- signing_key:
335
+ rubygems_version: 4.0.3
241
336
  specification_version: 4
242
337
  summary: DB Schema management tool
243
338
  test_files:
244
339
  - spec/config/spec_database.yml
340
+ - spec/convergence/config_spec.rb
245
341
  - spec/convergence/diff_spec.rb
246
342
  - spec/convergence/dsl_spec.rb
247
343
  - spec/convergence/dumper/mysql_schema_dumper_spec.rb
344
+ - spec/convergence/dumper/postgres_schema_dumper_spec.rb
345
+ - spec/convergence/dumper/sqlite_schema_dumper_spec.rb
248
346
  - spec/convergence/dumper_spec.rb
347
+ - spec/convergence/foreign_key_spec.rb
348
+ - spec/convergence/index_spec.rb
349
+ - spec/convergence/pretty_diff_spec.rb
249
350
  - spec/convergence/table_spec.rb
250
351
  - spec/fixtures/add_columns_to_paper.schema
251
352
  - spec/fixtures/add_table.schema
353
+ - spec/fixtures/add_table_with_enum_set.schema
252
354
  - spec/fixtures/change_comment_columns_to_paper.schema
253
355
  - spec/fixtures/change_foreign_key.schema
254
356
  - spec/fixtures/change_table_comment_to_paper.schema
255
357
  - spec/fixtures/drop_foreign_key.schema
256
358
  - spec/fixtures/drop_table.schema
359
+ - spec/fixtures/execute_raw_sql.schema
360
+ - spec/fixtures/postgres/add_columns_to_paper.schema
361
+ - spec/fixtures/postgres/add_table.schema
362
+ - spec/fixtures/postgres/change_comment_columns_to_paper.schema
363
+ - spec/fixtures/postgres/change_table_comment_to_paper.schema
364
+ - spec/fixtures/postgres/drop_foreign_key.schema
365
+ - spec/fixtures/postgres/drop_table.schema
366
+ - spec/fixtures/postgres/remove_columns_to_paper.schema
367
+ - spec/fixtures/postgres/rename_column_on_paper.schema
368
+ - spec/fixtures/postgres/rename_table.schema
369
+ - spec/fixtures/postgres_test_db.sql
257
370
  - spec/fixtures/remove_columns_to_paper.schema
371
+ - spec/fixtures/rename_column_to_author.schema
372
+ - spec/fixtures/rename_table.schema
373
+ - spec/fixtures/sqlite/add_columns_to_paper.schema
374
+ - spec/fixtures/sqlite/add_table.schema
375
+ - spec/fixtures/sqlite/change_columns_to_paper.schema
376
+ - spec/fixtures/sqlite/drop_foreign_key.schema
377
+ - spec/fixtures/sqlite/drop_table.schema
378
+ - spec/fixtures/sqlite/remove_columns_to_paper.schema
379
+ - spec/fixtures/sqlite/rename_column_on_paper.schema
380
+ - spec/fixtures/sqlite/rename_table.schema
381
+ - spec/fixtures/sqlite_test_db.sql
258
382
  - spec/fixtures/test_db.sql
383
+ - spec/integrations/command_diff.rb
259
384
  - spec/integrations/command_dryrun.rb
385
+ - spec/integrations/command_export.rb
260
386
  - spec/integrations/drop_foreign_key.rb
387
+ - spec/postgres_integrations/command_dryrun.rb
261
388
  - spec/spec_helper.rb
389
+ - spec/sqlite_integrations/command_dryrun.rb