declare_schema 0.6.2 → 0.6.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 +11 -0
- data/Gemfile.lock +2 -2
- data/lib/declare_schema/model/foreign_key_definition.rb +2 -3
- data/lib/declare_schema/version.rb +1 -1
- data/lib/generators/declare_schema/migration/migrator.rb +4 -4
- data/spec/lib/declare_schema/migration_generator_spec.rb +28 -27
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a2f9216c43a3ba2d669d966a4f645edb0faa78a6697cb2a008f017bab2d7534
|
4
|
+
data.tar.gz: 3223fad1929f4d75c41e12d8cabd20b6a95775308edf4e4e078b8dcd34ec54cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 45318951ec1e963d3eea783def6ee7d9828cdf1826e14ae5977c48cd7f1599bb04712ef95899750ed40a21cccfdd0789b24c993e080d898a10e689c7a9618072
|
7
|
+
data.tar.gz: eb1cf73bb3628ea498785b74b4d78029cd2858de1286657ca3f625181100c9daddfd1cb21c7c079f1518ee388e7112e30923ead79dd6e4d6333ee562f2daa2e2
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,16 @@ Inspired by [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|
4
4
|
|
5
5
|
Note: this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
6
|
|
7
|
+
## [0.6.3] - UNRELEASED
|
8
|
+
### Added
|
9
|
+
- Added `add_foreign_key` native rails call in `DeclareSchema::Model::ForeignKeyDefinition#to_add_statement`.
|
10
|
+
|
11
|
+
### Fixed
|
12
|
+
- Fixed a bug in migration generation caused by `DeclareSchema::Migration#create_constraints`
|
13
|
+
calling `DeclareSchema::Model::ForeignKeyDefinition#to_add_statement` with unused parameters.
|
14
|
+
|
15
|
+
- Fixed a bug in `DeclareSchema::Migration#remove_foreign_key` where special characters would not be quoted properly.
|
16
|
+
|
7
17
|
## [0.6.2] - 2021-01-06
|
8
18
|
### Added
|
9
19
|
- Added `sqlite3` as dev dependency for local development
|
@@ -100,6 +110,7 @@ using the appropriate Rails configuration attributes.
|
|
100
110
|
### Added
|
101
111
|
- Initial version from https://github.com/Invoca/hobo_fields v4.1.0.
|
102
112
|
|
113
|
+
[0.6.3]: https://github.com/Invoca/declare_schema/compare/v0.6.2...v0.6.3
|
103
114
|
[0.6.2]: https://github.com/Invoca/declare_schema/compare/v0.6.1...v0.6.2
|
104
115
|
[0.6.1]: https://github.com/Invoca/declare_schema/compare/v0.6.0...v0.6.1
|
105
116
|
[0.6.0]: https://github.com/Invoca/declare_schema/compare/v0.5.0...v0.6.0
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
declare_schema (0.6.
|
4
|
+
declare_schema (0.6.3)
|
5
5
|
rails (>= 4.2)
|
6
6
|
|
7
7
|
GEM
|
@@ -69,7 +69,7 @@ GEM
|
|
69
69
|
activesupport (>= 4.2.0)
|
70
70
|
i18n (1.8.5)
|
71
71
|
concurrent-ruby (~> 1.0)
|
72
|
-
listen (3.4.
|
72
|
+
listen (3.4.1)
|
73
73
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
74
74
|
rb-inotify (~> 0.9, >= 0.9.10)
|
75
75
|
loofah (2.7.0)
|
@@ -50,9 +50,8 @@ module DeclareSchema
|
|
50
50
|
|
51
51
|
attr_writer :parent_table_name
|
52
52
|
|
53
|
-
def to_add_statement
|
54
|
-
|
55
|
-
"execute #{statement.inspect}"
|
53
|
+
def to_add_statement
|
54
|
+
"add_foreign_key(#{@child_table.inspect}, #{parent_table_name.inspect}, name: #{@constraint_name.inspect})"
|
56
55
|
end
|
57
56
|
|
58
57
|
def key
|
@@ -386,7 +386,7 @@ module Generators
|
|
386
386
|
end
|
387
387
|
|
388
388
|
def create_constraints(model)
|
389
|
-
model.constraint_specs.map { |fk| fk.to_add_statement
|
389
|
+
model.constraint_specs.map { |fk| fk.to_add_statement }
|
390
390
|
end
|
391
391
|
|
392
392
|
def create_field(field_spec, field_name_width)
|
@@ -551,20 +551,20 @@ module Generators
|
|
551
551
|
|
552
552
|
add_fks.map! do |fk|
|
553
553
|
# next if fk.parent.constantize.abstract_class || fk.parent == fk.model.class_name
|
554
|
-
undo_add_fks << remove_foreign_key(old_table_name, fk.
|
554
|
+
undo_add_fks << remove_foreign_key(old_table_name, fk.constraint_name)
|
555
555
|
fk.to_add_statement
|
556
556
|
end.compact
|
557
557
|
|
558
558
|
drop_fks.map! do |fk|
|
559
559
|
undo_drop_fks << fk.to_add_statement
|
560
|
-
remove_foreign_key(new_table_name, fk.
|
560
|
+
remove_foreign_key(new_table_name, fk.constraint_name)
|
561
561
|
end
|
562
562
|
|
563
563
|
[drop_fks + add_fks, undo_add_fks + undo_drop_fks]
|
564
564
|
end
|
565
565
|
|
566
566
|
def remove_foreign_key(old_table_name, fk_name)
|
567
|
-
"remove_foreign_key(
|
567
|
+
"remove_foreign_key(#{old_table_name.inspect}, name: #{fk_name.to_s.inspect})"
|
568
568
|
end
|
569
569
|
|
570
570
|
def format_options(options, type, changing: false)
|
@@ -369,14 +369,14 @@ RSpec.describe 'DeclareSchema Migration Generator' do
|
|
369
369
|
|
370
370
|
add_index :adverts, [:category_id], name: 'on_category_id'
|
371
371
|
|
372
|
-
#{"
|
372
|
+
#{"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_category_id\")\n" if defined?(Mysql2)}
|
373
373
|
EOS
|
374
374
|
.and migrate_down(<<~EOS.strip)
|
375
375
|
remove_column :adverts, :category_id
|
376
376
|
|
377
377
|
remove_index :adverts, name: :on_category_id rescue ActiveRecord::StatementInvalid
|
378
378
|
|
379
|
-
#{"remove_foreign_key(
|
379
|
+
#{"remove_foreign_key(\"adverts\", name: \"index_adverts_on_category_id\")\n" if defined?(Mysql2)}
|
380
380
|
EOS
|
381
381
|
)
|
382
382
|
|
@@ -397,8 +397,8 @@ RSpec.describe 'DeclareSchema Migration Generator' do
|
|
397
397
|
|
398
398
|
add_index :adverts, [:c_id], name: 'on_c_id'
|
399
399
|
|
400
|
-
#{"
|
401
|
-
"
|
400
|
+
#{"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_category_id\")\n" +
|
401
|
+
"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_c_id\")" if defined?(Mysql2)}
|
402
402
|
EOS
|
403
403
|
)
|
404
404
|
|
@@ -417,8 +417,8 @@ RSpec.describe 'DeclareSchema Migration Generator' do
|
|
417
417
|
migrate_up(<<~EOS.strip)
|
418
418
|
add_column :adverts, :category_id, :integer, limit: 8, null: false
|
419
419
|
|
420
|
-
#{"
|
421
|
-
"
|
420
|
+
#{"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_category_id\")\n" +
|
421
|
+
"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_c_id\")" if defined?(Mysql2)}
|
422
422
|
EOS
|
423
423
|
)
|
424
424
|
|
@@ -439,8 +439,8 @@ RSpec.describe 'DeclareSchema Migration Generator' do
|
|
439
439
|
|
440
440
|
add_index :adverts, [:category_id], name: 'my_index'
|
441
441
|
|
442
|
-
#{"
|
443
|
-
"
|
442
|
+
#{"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_category_id\")\n" +
|
443
|
+
"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_c_id\")" if defined?(Mysql2)}
|
444
444
|
EOS
|
445
445
|
)
|
446
446
|
|
@@ -465,16 +465,16 @@ RSpec.describe 'DeclareSchema Migration Generator' do
|
|
465
465
|
add_column :adverts, :updated_at, :datetime
|
466
466
|
add_column :adverts, :lock_version, :integer, null: false, default: 1
|
467
467
|
|
468
|
-
#{"
|
469
|
-
"
|
468
|
+
#{"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_category_id\")\n" +
|
469
|
+
"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_c_id\")" if defined?(Mysql2)}
|
470
470
|
EOS
|
471
471
|
.and migrate_down(<<~EOS.strip)
|
472
472
|
remove_column :adverts, :created_at
|
473
473
|
remove_column :adverts, :updated_at
|
474
474
|
remove_column :adverts, :lock_version
|
475
475
|
|
476
|
-
#{"remove_foreign_key(
|
477
|
-
"remove_foreign_key(
|
476
|
+
#{"remove_foreign_key(\"adverts\", name: \"index_adverts_on_category_id\")\n" +
|
477
|
+
"remove_foreign_key(\"adverts\", name: \"index_adverts_on_c_id\")" if defined?(Mysql2)}
|
478
478
|
EOS
|
479
479
|
)
|
480
480
|
|
@@ -498,8 +498,8 @@ RSpec.describe 'DeclareSchema Migration Generator' do
|
|
498
498
|
|
499
499
|
add_index :adverts, [:title], name: 'on_title'
|
500
500
|
|
501
|
-
#{"
|
502
|
-
"
|
501
|
+
#{"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_category_id\")\n" +
|
502
|
+
"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_c_id\")" if defined?(Mysql2)}
|
503
503
|
EOS
|
504
504
|
)
|
505
505
|
|
@@ -519,8 +519,8 @@ RSpec.describe 'DeclareSchema Migration Generator' do
|
|
519
519
|
|
520
520
|
add_index :adverts, [:title], unique: true, name: 'on_title'
|
521
521
|
|
522
|
-
#{"
|
523
|
-
"
|
522
|
+
#{"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_category_id\")\n" +
|
523
|
+
"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_c_id\")" if defined?(Mysql2)}
|
524
524
|
EOS
|
525
525
|
)
|
526
526
|
|
@@ -540,8 +540,8 @@ RSpec.describe 'DeclareSchema Migration Generator' do
|
|
540
540
|
|
541
541
|
add_index :adverts, [:title], name: 'my_index'
|
542
542
|
|
543
|
-
#{"
|
544
|
-
"
|
543
|
+
#{"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_category_id\")\n" +
|
544
|
+
"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_c_id\")" if defined?(Mysql2)}
|
545
545
|
EOS
|
546
546
|
)
|
547
547
|
|
@@ -559,8 +559,8 @@ RSpec.describe 'DeclareSchema Migration Generator' do
|
|
559
559
|
|
560
560
|
add_index :adverts, [:title], name: 'on_title'
|
561
561
|
|
562
|
-
#{"
|
563
|
-
"
|
562
|
+
#{"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_category_id\")\n" +
|
563
|
+
"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_c_id\")" if defined?(Mysql2)}
|
564
564
|
EOS
|
565
565
|
)
|
566
566
|
|
@@ -578,8 +578,8 @@ RSpec.describe 'DeclareSchema Migration Generator' do
|
|
578
578
|
|
579
579
|
add_index :adverts, [:title], unique: true, name: 'my_index'
|
580
580
|
|
581
|
-
#{"
|
582
|
-
"
|
581
|
+
#{"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_category_id\")\n" +
|
582
|
+
"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_c_id\")" if defined?(Mysql2)}
|
583
583
|
EOS
|
584
584
|
)
|
585
585
|
|
@@ -597,8 +597,8 @@ RSpec.describe 'DeclareSchema Migration Generator' do
|
|
597
597
|
|
598
598
|
add_index :adverts, [:title, :category_id], name: 'on_title_and_category_id'
|
599
599
|
|
600
|
-
#{"
|
601
|
-
"
|
600
|
+
#{"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_category_id\")\n" +
|
601
|
+
"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_c_id\")" if defined?(Mysql2)}
|
602
602
|
EOS
|
603
603
|
)
|
604
604
|
|
@@ -634,7 +634,8 @@ RSpec.describe 'DeclareSchema Migration Generator' do
|
|
634
634
|
"add_index :ads, [:id], unique: true, name: 'PRIMARY'\n"
|
635
635
|
elsif defined?(Mysql2)
|
636
636
|
"execute \"ALTER TABLE ads DROP PRIMARY KEY, ADD PRIMARY KEY (id)\"\n\n" +
|
637
|
-
"
|
637
|
+
"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_category_id\")\n" +
|
638
|
+
"add_foreign_key(\"adverts\", \"categories\", name: \"index_adverts_on_c_id\")"
|
638
639
|
end}
|
639
640
|
EOS
|
640
641
|
.and migrate_down(<<~EOS.strip)
|
@@ -647,8 +648,8 @@ RSpec.describe 'DeclareSchema Migration Generator' do
|
|
647
648
|
"add_index :adverts, [:id], unique: true, name: 'PRIMARY'\n"
|
648
649
|
elsif defined?(Mysql2)
|
649
650
|
"execute \"ALTER TABLE adverts DROP PRIMARY KEY, ADD PRIMARY KEY (id)\"\n\n" +
|
650
|
-
"remove_foreign_key(
|
651
|
-
"remove_foreign_key(
|
651
|
+
"remove_foreign_key(\"adverts\", name: \"index_adverts_on_category_id\")\n" +
|
652
|
+
"remove_foreign_key(\"adverts\", name: \"index_adverts_on_c_id\")"
|
652
653
|
end}
|
653
654
|
EOS
|
654
655
|
)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: declare_schema
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Invoca Development adapted from hobo_fields by Tom Locke
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-01-
|
11
|
+
date: 2021-01-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|