nandi 0.8.0 → 0.9.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e9c08faeee8155ae5b0e5357cabca63c2f31bfd65fb464e16991b47c4b9cab75
4
- data.tar.gz: 0e408aa01adaf0ce11560acef08d899c208d2c4e3afdd31b3fb9777a0d0b2408
3
+ metadata.gz: ba61fdd052ec58212031846c92ad947cb1f7cb8c033271b101f5973a2b7074f6
4
+ data.tar.gz: b0c30216fb5544927d1d3b47ef0ad87d935a9ea8859c37a8779662a65f88d9f5
5
5
  SHA512:
6
- metadata.gz: fe9b90ee4085d5f7d208e481f9ae4fca325f87ab37ff7b3c1a74063adbe65a7777ab66e8afbb8b4d18408362ef1c71f88884eeab6643c19ffd3e8de3f98b007f
7
- data.tar.gz: fdbca6280d8c5299661b78fa1163593f903605c056337c3e55b3ca512370717fa7c8af97bfe055393205a6c15fe224aa32a97616dfec8fb118daf39a10b42ca0
6
+ metadata.gz: f4c0ecfcb5e1a84c4a8b2e0721f4e48a8abff3f6bde78f04184544e9004987a4f155eebb3342b780fc793bc2d5104a8a98d7d25c6fcc9f8da43cdd70e0b5f9fd
7
+ data.tar.gz: aedffb405097c5d9e988e001eab0c929ed0fab64b1b9b04a534051fa59aa16634c3c9071bf5daf31b7c416bfa94679b020685bd8c201c78d0552ebbcf60e0a75
data/README.md CHANGED
@@ -161,11 +161,11 @@ We now have three new migration files:
161
161
 
162
162
  class AddReferenceOnFoosToBars < Nandi::Migration
163
163
  def up
164
- add_reference :foos, :bar
164
+ add_column :foos, :bar_id, :bigint
165
165
  end
166
166
 
167
167
  def down
168
- remove_reference :foos, :bar
168
+ remove_column :foos, :bar_id
169
169
  end
170
170
  end
171
171
 
@@ -286,12 +286,6 @@ create_table :widgets do |t|
286
286
  end
287
287
  ```
288
288
 
289
- ### `#add_reference(table, ref_name, **extra_args)`
290
- Adds a new reference column. Nandi will validate that the foreign key flag is not set to true; use `add_foreign_key` and `validate_foreign_key` instead!
291
-
292
- ### `#remove_reference(table, ref_name, **extra_args)`
293
- Removes a reference column.
294
-
295
289
  ### `#remove_column(table, name, **extra_args)`
296
290
  Remove an existing column.
297
291
 
@@ -11,7 +11,7 @@ module Nandi
11
11
  argument :target, type: :string
12
12
  class_option :name, type: :string
13
13
  class_option :column, type: :string
14
- class_option :type, type: :string
14
+ class_option :type, type: :string, default: "bigint"
15
15
  class_option :no_create_column, type: :boolean
16
16
  class_option :validation_timeout, type: :numeric, default: 15 * 60 * 1000
17
17
 
@@ -61,11 +61,11 @@ module Nandi
61
61
  private
62
62
 
63
63
  def type
64
- options["type"]&.to_sym
64
+ options["type"].to_sym
65
65
  end
66
66
 
67
67
  def reference_name
68
- target.singularize.to_sym
68
+ "#{target.singularize}_id".to_sym
69
69
  end
70
70
 
71
71
  def base_path
@@ -2,10 +2,10 @@
2
2
 
3
3
  class <%= add_reference_name.camelize %> < Nandi::Migration
4
4
  def up
5
- add_reference <%= format_value(table) %>, <%= format_value(reference_name) %><% if type %>, type: <%= format_value(type) %><% end %>
5
+ add_column <%= format_value(table) %>, <%= format_value(reference_name) %>, <%= format_value(type) %>
6
6
  end
7
7
 
8
8
  def down
9
- remove_reference <%= format_value(table) %>, <%= format_value(reference_name) %>
9
+ remove_column <%= format_value(table) %>, <%= format_value(reference_name) %>
10
10
  end
11
11
  end
@@ -5,8 +5,6 @@ require "nandi/instructions/remove_index"
5
5
  require "nandi/instructions/create_table"
6
6
  require "nandi/instructions/drop_table"
7
7
  require "nandi/instructions/add_column"
8
- require "nandi/instructions/add_reference"
9
- require "nandi/instructions/remove_reference"
10
8
  require "nandi/instructions/remove_column"
11
9
  require "nandi/instructions/add_foreign_key"
12
10
  require "nandi/instructions/drop_constraint"
@@ -188,31 +188,6 @@ module Nandi
188
188
  )
189
189
  end
190
190
 
191
- # Adds a new reference column. Nandi will validate that the foreign key flag
192
- # is not set to true; use `add_foreign_key` and `validate_foreign_key` instead!
193
- # @param table [Symbol, String] The name of the table to add the column to
194
- # @param ref_name [Symbol, String] The referenced column name
195
- # @param kwargs [Hash] Arbitrary options to be passed to the backend.
196
- def add_reference(table, ref_name, **kwargs)
197
- current_instructions << Instructions::AddReference.new(
198
- table: table,
199
- ref_name: ref_name,
200
- **kwargs,
201
- )
202
- end
203
-
204
- # Removes a reference column.
205
- # @param table [Symbol, String] The name of the table to remove the reference from
206
- # @param ref_name [Symbol, String] The referenced column name
207
- # @param kwargs [Hash] Arbitrary options to be passed to the backend.
208
- def remove_reference(table, ref_name, **kwargs)
209
- current_instructions << Instructions::RemoveReference.new(
210
- table: table,
211
- ref_name: ref_name,
212
- **kwargs,
213
- )
214
- end
215
-
216
191
  # Remove an existing column.
217
192
  # @param table [Symbol, String] The name of the table to remove the column
218
193
  # from.
@@ -82,18 +82,6 @@ module Nandi
82
82
  formatted_property :extra_args
83
83
  end
84
84
 
85
- class AddReferenceCell < Base
86
- formatted_property :table
87
- formatted_property :ref_name
88
- formatted_property :extra_args
89
- end
90
-
91
- class RemoveReferenceCell < Base
92
- formatted_property :table
93
- formatted_property :ref_name
94
- formatted_property :extra_args
95
- end
96
-
97
85
  class RemoveColumnCell < Base
98
86
  formatted_property :table
99
87
  formatted_property :name
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "nandi/validation/add_column_validator"
4
- require "nandi/validation/add_reference_validator"
5
4
  require "nandi/validation/remove_index_validator"
6
5
  require "nandi/validation/each_validator"
7
6
  require "nandi/validation/result"
@@ -21,8 +21,6 @@ module Nandi
21
21
  RemoveIndexValidator.call(instruction)
22
22
  when :add_column
23
23
  AddColumnValidator.call(instruction)
24
- when :add_reference
25
- AddReferenceValidator.call(instruction)
26
24
  else
27
25
  success
28
26
  end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nandi
4
+ VERSION = "0.9.0"
5
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nandi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
- - James Turley
7
+ - GoCardless Engineering
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-04 00:00:00.000000000 Z
11
+ date: 2020-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -142,14 +142,20 @@ dependencies:
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '10.0'
145
+ version: '12.3'
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: 12.3.3
146
149
  type: :development
147
150
  prerelease: false
148
151
  version_requirements: !ruby/object:Gem::Requirement
149
152
  requirements:
150
153
  - - "~>"
151
154
  - !ruby/object:Gem::Version
152
- version: '10.0'
155
+ version: '12.3'
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: 12.3.3
153
159
  - !ruby/object:Gem::Dependency
154
160
  name: rspec
155
161
  requirement: !ruby/object:Gem::Requirement
@@ -208,7 +214,7 @@ dependencies:
208
214
  version: '0.9'
209
215
  description:
210
216
  email:
211
- - jamesturley@gocardless.com
217
+ - engineering@gocardless.com
212
218
  executables:
213
219
  - nandi-enforce
214
220
  extensions: []
@@ -246,7 +252,6 @@ files:
246
252
  - lib/nandi/instructions/add_column.rb
247
253
  - lib/nandi/instructions/add_foreign_key.rb
248
254
  - lib/nandi/instructions/add_index.rb
249
- - lib/nandi/instructions/add_reference.rb
250
255
  - lib/nandi/instructions/change_column_default.rb
251
256
  - lib/nandi/instructions/create_table.rb
252
257
  - lib/nandi/instructions/drop_constraint.rb
@@ -255,7 +260,6 @@ files:
255
260
  - lib/nandi/instructions/remove_column.rb
256
261
  - lib/nandi/instructions/remove_index.rb
257
262
  - lib/nandi/instructions/remove_not_null_constraint.rb
258
- - lib/nandi/instructions/remove_reference.rb
259
263
  - lib/nandi/instructions/validate_constraint.rb
260
264
  - lib/nandi/lockfile.rb
261
265
  - lib/nandi/migration.rb
@@ -269,19 +273,18 @@ files:
269
273
  - lib/nandi/timeout_policies/concurrent.rb
270
274
  - lib/nandi/validation.rb
271
275
  - lib/nandi/validation/add_column_validator.rb
272
- - lib/nandi/validation/add_reference_validator.rb
273
276
  - lib/nandi/validation/each_validator.rb
274
277
  - lib/nandi/validation/failure_helpers.rb
275
278
  - lib/nandi/validation/remove_index_validator.rb
276
279
  - lib/nandi/validation/result.rb
277
280
  - lib/nandi/validation/timeout_validator.rb
278
281
  - lib/nandi/validator.rb
282
+ - lib/nandi/version.rb
279
283
  - lib/templates/nandi/renderers/active_record/generate/show.rb.erb
280
284
  - lib/templates/nandi/renderers/active_record/instructions/add_check_constraint/show.rb.erb
281
285
  - lib/templates/nandi/renderers/active_record/instructions/add_column/show.rb.erb
282
286
  - lib/templates/nandi/renderers/active_record/instructions/add_foreign_key/show.rb.erb
283
287
  - lib/templates/nandi/renderers/active_record/instructions/add_index/show.rb.erb
284
- - lib/templates/nandi/renderers/active_record/instructions/add_reference/show.rb.erb
285
288
  - lib/templates/nandi/renderers/active_record/instructions/change_column_default/show.rb.erb
286
289
  - lib/templates/nandi/renderers/active_record/instructions/create_table/show.rb.erb
287
290
  - lib/templates/nandi/renderers/active_record/instructions/drop_constraint/show.rb.erb
@@ -290,10 +293,10 @@ files:
290
293
  - lib/templates/nandi/renderers/active_record/instructions/remove_column/show.rb.erb
291
294
  - lib/templates/nandi/renderers/active_record/instructions/remove_index/show.rb.erb
292
295
  - lib/templates/nandi/renderers/active_record/instructions/remove_not_null_constraint/show.rb.erb
293
- - lib/templates/nandi/renderers/active_record/instructions/remove_reference/show.rb.erb
294
296
  - lib/templates/nandi/renderers/active_record/instructions/validate_constraint/show.rb.erb
295
- homepage:
296
- licenses: []
297
+ homepage: https://github.com/gocardless/nandi
298
+ licenses:
299
+ - MIT
297
300
  metadata: {}
298
301
  post_install_message:
299
302
  rdoc_options: []
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Nandi
4
- module Instructions
5
- class AddReference
6
- attr_reader :table, :ref_name, :extra_args
7
-
8
- def initialize(table:, ref_name:, **kwargs)
9
- @table = table
10
- @ref_name = ref_name
11
- @extra_args = kwargs
12
- end
13
-
14
- def procedure
15
- :add_reference
16
- end
17
-
18
- def lock
19
- Nandi::Migration::LockWeights::ACCESS_EXCLUSIVE
20
- end
21
- end
22
- end
23
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Nandi
4
- module Instructions
5
- class RemoveReference
6
- attr_reader :table, :ref_name, :extra_args
7
-
8
- def initialize(table:, ref_name:, **kwargs)
9
- @table = table
10
- @ref_name = ref_name
11
- @extra_args = kwargs
12
- end
13
-
14
- def procedure
15
- :remove_reference
16
- end
17
-
18
- def lock
19
- Nandi::Migration::LockWeights::ACCESS_EXCLUSIVE
20
- end
21
- end
22
- end
23
- end
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "nandi/validation/failure_helpers"
4
-
5
- module Nandi
6
- module Validation
7
- class AddReferenceValidator
8
- include Nandi::Validation::FailureHelpers
9
-
10
- def self.call(instruction)
11
- new(instruction).call
12
- end
13
-
14
- def initialize(instruction)
15
- @instruction = instruction
16
- end
17
-
18
- def call
19
- foreign_key = instruction.extra_args.fetch(:foreign_key) { false }
20
-
21
- assert(
22
- !foreign_key,
23
- foreign_key_message,
24
- )
25
- end
26
-
27
- private
28
-
29
- def foreign_key_message
30
- "Adding a foreign key constraint must be done in two separate migrations. " \
31
- "Use the `add_foreign_key` and `validate_foreign_key` methods, or the " \
32
- "nandi:foreign_key generator, to do this."
33
- end
34
-
35
- attr_reader :instruction
36
- end
37
- end
38
- end
@@ -1,5 +0,0 @@
1
- add_reference(
2
- <%= table %>,
3
- <%= ref_name %>,
4
- <%= extra_args %>
5
- )
@@ -1,5 +0,0 @@
1
- remove_reference(
2
- <%= table %>,
3
- <%= ref_name %>,
4
- <%= extra_args %>
5
- )