ridgepole 0.6.0.beta2 → 0.6.0.beta3

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 (84) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +5 -0
  3. data/README.md +2 -0
  4. data/bin/ridgepole +16 -16
  5. data/lib/ridgepole/client.rb +6 -9
  6. data/lib/ridgepole/default_limit.rb +26 -0
  7. data/lib/ridgepole/delta.rb +2 -8
  8. data/lib/ridgepole/diff.rb +14 -10
  9. data/lib/ridgepole/version.rb +1 -1
  10. data/lib/ridgepole.rb +2 -10
  11. data/ridgepole.gemspec +1 -0
  12. data/spec/{bigint_pk → mysql/bigint_pk}/bigint_pkspec.rb +0 -0
  13. data/spec/{cli → mysql/cli}/config_spec.rb +3 -1
  14. data/spec/{cli → mysql/cli}/ridgepole_spec.rb +3 -0
  15. data/spec/{collation → mysql/collation}/collation_spec.rb +2 -0
  16. data/spec/{diff → mysql/diff}/diff2_spec.rb +2 -0
  17. data/spec/{diff → mysql/diff}/diff_spec.rb +2 -0
  18. data/spec/{dump → mysql/dump}/dump_class_method_spec.rb +2 -0
  19. data/spec/{dump → mysql/dump}/dump_some_tables_spec.rb +2 -0
  20. data/spec/{dump → mysql/dump}/dump_spec.rb +2 -0
  21. data/spec/{dump → mysql/dump}/dump_without_table_options_spec.rb +2 -0
  22. data/spec/{migrate_0 → mysql/fk}/migrate_change_fk_spec.rb +5 -3
  23. data/spec/{migrate_0 → mysql/fk}/migrate_create_fk_spec.rb +7 -5
  24. data/spec/{migrate_0 → mysql/fk}/migrate_drop_fk_spec.rb +6 -4
  25. data/spec/{migrate → mysql/migrate}/check_orphan_index_spec.rb +2 -0
  26. data/spec/{migrate → mysql/migrate}/migrate_add_column2_spec.rb +2 -0
  27. data/spec/{migrate → mysql/migrate}/migrate_add_column_spec.rb +2 -0
  28. data/spec/{migrate → mysql/migrate}/migrate_change_column2_spec.rb +2 -0
  29. data/spec/{migrate → mysql/migrate}/migrate_change_column3_spec.rb +2 -0
  30. data/spec/mysql/migrate/migrate_change_column4_spec.rb +83 -0
  31. data/spec/{migrate → mysql/migrate}/migrate_change_column_float_spec.rb +2 -0
  32. data/spec/{migrate → mysql/migrate}/migrate_change_column_spec.rb +2 -0
  33. data/spec/{migrate → mysql/migrate}/migrate_change_index2_spec.rb +2 -0
  34. data/spec/{migrate → mysql/migrate}/migrate_change_index3_spec.rb +2 -0
  35. data/spec/{migrate → mysql/migrate}/migrate_change_index4_spec.rb +2 -0
  36. data/spec/mysql/migrate/migrate_change_index5_spec.rb +78 -0
  37. data/spec/{migrate → mysql/migrate}/migrate_change_index_spec.rb +2 -0
  38. data/spec/{migrate → mysql/migrate}/migrate_change_table_option_spec.rb +2 -0
  39. data/spec/{migrate → mysql/migrate}/migrate_create_index_spec.rb +2 -0
  40. data/spec/{migrate → mysql/migrate}/migrate_create_table_spec.rb +2 -0
  41. data/spec/{migrate → mysql/migrate}/migrate_create_table_with_options_spec.rb +2 -0
  42. data/spec/{migrate → mysql/migrate}/migrate_drop_column_and_index_2_spec.rb +2 -0
  43. data/spec/{migrate → mysql/migrate}/migrate_drop_column_and_index_spec.rb +2 -0
  44. data/spec/{migrate → mysql/migrate}/migrate_drop_column_spec.rb +2 -0
  45. data/spec/{migrate → mysql/migrate}/migrate_drop_index_spec.rb +2 -0
  46. data/spec/{migrate → mysql/migrate}/migrate_drop_table_spec.rb +2 -0
  47. data/spec/{migrate → mysql/migrate}/migrate_duplicate_index_spec.rb +2 -0
  48. data/spec/{migrate → mysql/migrate}/migrate_duplicate_table_spec.rb +2 -0
  49. data/spec/{migrate → mysql/migrate}/migrate_empty_spec.rb +2 -0
  50. data/spec/{migrate → mysql/migrate}/migrate_execute_spec.rb +2 -0
  51. data/spec/{migrate → mysql/migrate}/migrate_merge_mode_spec.rb +2 -0
  52. data/spec/{migrate → mysql/migrate}/migrate_noop_spec.rb +2 -0
  53. data/spec/{migrate → mysql/migrate}/migrate_rename_column_spec.rb +2 -0
  54. data/spec/{migrate → mysql/migrate}/migrate_rename_table_spec.rb +2 -0
  55. data/spec/{migrate → mysql/migrate}/migrate_same_default_null_spec.rb +2 -0
  56. data/spec/{migrate → mysql/migrate}/migrate_same_spec.rb +2 -0
  57. data/spec/{migrate → mysql/migrate}/migrate_script_error_spec.rb +2 -0
  58. data/spec/{migrate → mysql/migrate}/migrate_skip_rename_column_spec.rb +2 -0
  59. data/spec/{migrate → mysql/migrate}/migrate_skip_rename_table_spec.rb +2 -0
  60. data/spec/{migrate → mysql/migrate}/migrate_with_ignore_tables_spec.rb +2 -0
  61. data/spec/{migrate → mysql/migrate}/migrate_with_pre_post_query_spec.rb +2 -0
  62. data/spec/{migrate → mysql/migrate}/migrate_with_tables_spec.rb +2 -0
  63. data/spec/{ridgepole_test_database.sql → mysql/ridgepole_test_database.sql} +0 -0
  64. data/spec/{ridgepole_test_tables.sql → mysql/ridgepole_test_tables.sql} +0 -0
  65. data/spec/postgresql/diff/diff_spec.rb +153 -0
  66. data/spec/postgresql/dump/dump_spec.rb +76 -0
  67. data/spec/postgresql/fk/migrate_change_fk_spec.rb +62 -0
  68. data/spec/postgresql/fk/migrate_create_fk_spec.rb +173 -0
  69. data/spec/postgresql/fk/migrate_drop_fk_spec.rb +114 -0
  70. data/spec/postgresql/migrate/migrate_add_column_spec.rb +220 -0
  71. data/spec/postgresql/migrate/migrate_change_column_spec.rb +203 -0
  72. data/spec/postgresql/migrate/migrate_change_index_spec.rb +193 -0
  73. data/spec/postgresql/migrate/migrate_create_table_spec.rb +103 -0
  74. data/spec/postgresql/migrate/migrate_drop_column_spec.rb +185 -0
  75. data/spec/postgresql/migrate/migrate_drop_column_with_index_spec.rb +180 -0
  76. data/spec/postgresql/migrate/migrate_drop_index_spec.rb +125 -0
  77. data/spec/postgresql/migrate/migrate_drop_table_spec.rb +116 -0
  78. data/spec/postgresql/migrate/migrate_rename_column_spec.rb +179 -0
  79. data/spec/postgresql/migrate/migrate_rename_table_spec.rb +199 -0
  80. data/spec/postgresql/migrate/migrate_same_spec.rb +84 -0
  81. data/spec/postgresql/ridgepole_test_database.sql +15 -0
  82. data/spec/postgresql/ridgepole_test_tables.sql +74 -0
  83. data/spec/spec_helper.rb +63 -7
  84. metadata +159 -104
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e6ae74a3fb40232b6c6a0fba3cc64ca556684bba
4
- data.tar.gz: ba614d9bc208b5d6ddbef3f125d30cd89d5e719c
3
+ metadata.gz: f3f7ab0526aeeb91e3a59961689faac1fe121581
4
+ data.tar.gz: 17600a9bd516754b1a07a71884a485130fdd2fa6
5
5
  SHA512:
6
- metadata.gz: 787b4a10c9993dc834880c5593a89ee501709cf83c94f4686a0e12f2a3173363aaf6fc339c06a150287e4005bc481e263174dfc8673350a9bc20afcd4f942e95
7
- data.tar.gz: 92843a96b3c721a54f5328215bda9d8f2778f7cb5744de6790e5db18b87182d043fcbdf3c781aec20a458da5411d704c91830dcb1020eecc0ac345b34fc1bc03
6
+ metadata.gz: afe473047299f94e4dfec5666fa178ce69c9582b7eb9e18e40efae6369d284e4471c935889d7f9c833fc1c50dfb84e001cce78a34fde16bbe63c3a76ac85ec9f
7
+ data.tar.gz: 6601bd9271465052f305a0e4321ecb0cf90a870f267412f651341f082ab05011a836aa050ec18e21f1c00641ddbdd5bef695b58b203afdf9f02c49534b8ea9e0
data/.travis.yml CHANGED
@@ -1,6 +1,8 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - 2.0.0
4
+ - 2.1.5
5
+ - 2.2.1
4
6
  script:
5
7
  - bundle install
6
8
  - bundle exec rake
@@ -8,3 +10,6 @@ env:
8
10
  matrix:
9
11
  - ENABLE_MYSQL_AWESOME=0
10
12
  - ENABLE_MYSQL_AWESOME=1
13
+ - POSTGRESQL=1
14
+ addons:
15
+ postgresql: "9.3"
data/README.md CHANGED
@@ -34,6 +34,7 @@ It defines DB schema using [Rails DSL](http://guides.rubyonrails.org/migrations.
34
34
  * migration_comments
35
35
  * foreigner
36
36
  * Disable sqlite support
37
+ * Add PostgreSQL test
37
38
 
38
39
  ## Installation
39
40
 
@@ -79,6 +80,7 @@ Usage: ridgepole [options]
79
80
  --enable-mysql-awesome
80
81
  --mysql-awesome-unsigned-pk
81
82
  --dump-without-table-options
83
+ --index-removed-drop-column
82
84
  -r, --require LIBS
83
85
  --log-file LOG_FILE
84
86
  --verbose
data/bin/ridgepole CHANGED
@@ -66,22 +66,21 @@ ARGV.options do |opt|
66
66
  raise "Cannot use `bulk-change` in `merge`" if options[:merge]
67
67
  options[:bulk_change] = true
68
68
  }
69
-
70
- Ridgepole::DEFAULTS_LIMITS.keys.each do |column_type|
71
- case column_type
72
- when :integer
73
- option_column_type = :int
74
- when :boolean
75
- option_column_type = :bool
76
- else
77
- option_column_type = column_type
78
- end
79
-
80
- opt.on('', "--default-#{option_column_type}-limit LIMIT", Integer) {|v|
81
- options[:"default_#{column_type}_limit"] = v
82
- }
83
- end
84
-
69
+ opt.on('', "--default-bool-limit LIMIT", Integer) {|v|
70
+ options[:default_boolean_limit] = v
71
+ }
72
+ opt.on('', "--default-int-limit LIMIT", Integer) {|v|
73
+ options[:"default_integer_limit"] = v
74
+ }
75
+ opt.on('', "--default-float-limit LIMIT", Integer) {|v|
76
+ options[:"default_float_limit"] = v
77
+ }
78
+ opt.on('', "--default-string-limit LIMIT", Integer) {|v|
79
+ options[:"default_string_limit"] = v
80
+ }
81
+ opt.on('', "--default-text-limit LIMIT", Integer) {|v|
82
+ options[:"default_text_limit"] = v
83
+ }
85
84
  opt.on('', '--pre-query QUERY') {|v| options[:pre_query] = v }
86
85
  opt.on('', '--post-query QUERY') {|v| options[:post_query] = v }
87
86
  opt.on('-e', '--export') { set_mode[:export] }
@@ -107,6 +106,7 @@ ARGV.options do |opt|
107
106
  opt.on('', '--enable-mysql-awesome') { options[:enable_mysql_awesome] = true }
108
107
  opt.on('', '--mysql-awesome-unsigned-pk') { options[:mysql_awesome_unsigned_pk] = true }
109
108
  opt.on('', '--dump-without-table-options') { options[:dump_without_table_options] = true }
109
+ opt.on('', '--index-removed-drop-column') { options[:index_removed_drop_column] = true }
110
110
  opt.on('-r' , '--require LIBS', Array) {|v| v.each {|i| require i } }
111
111
  opt.on('' , '--log-file LOG_FILE') {|v| options[:log_file] = v }
112
112
  opt.on('' , '--verbose') { Ridgepole::Logger.verbose = true }
@@ -1,9 +1,14 @@
1
1
  class Ridgepole::Client
2
2
  def initialize(conn_spec, options = {})
3
- Ridgepole::Client.normalize_options(options)
4
3
  @options = options
5
4
 
6
5
  ActiveRecord::Base.establish_connection(conn_spec)
6
+
7
+ # XXX: If the required processing in class method?
8
+ if not @options.has_key?(:index_removed_drop_column) and Ridgepole::DefaultsLimit.adapter == :postgresql
9
+ @options[:index_removed_drop_column] = true
10
+ end
11
+
7
12
  Ridgepole::ExecuteExpander.expand_execute(ActiveRecord::Base.connection)
8
13
  @dumper = Ridgepole::Dumper.new(@options)
9
14
  @parser = Ridgepole::DSLParser.new(@options)
@@ -37,7 +42,6 @@ class Ridgepole::Client
37
42
 
38
43
  class << self
39
44
  def diff(dsl_or_config1, dsl_or_config2, options = {})
40
- normalize_options(options)
41
45
  logger = Ridgepole::Logger.instance
42
46
 
43
47
  logger.verbose_info('# Parse DSL1')
@@ -51,17 +55,10 @@ class Ridgepole::Client
51
55
  end
52
56
 
53
57
  def dump(conn_spec, options = {}, &block)
54
- normalize_options(options)
55
58
  client = self.new(conn_spec, options)
56
59
  client.dump(&block)
57
60
  end
58
61
 
59
- def normalize_options(options)
60
- Ridgepole::DEFAULTS_LIMITS.each do |column_type, limit|
61
- options[:"default_#{column_type}_limit"] ||= limit
62
- end
63
- end
64
-
65
62
  private
66
63
 
67
64
  def load_definition(dsl_or_config, options = {})
@@ -0,0 +1,26 @@
1
+ class Ridgepole::DefaultsLimit
2
+ DEFAULTS_LIMITS = {
3
+ :mysql2 => {
4
+ :boolean => 1,
5
+ :integer => 4,
6
+ :float => 24,
7
+ :string => 255,
8
+ :text => 65535,
9
+ }
10
+ }
11
+
12
+ class << self
13
+ def default_limit(column_type, options)
14
+ defaults = DEFAULTS_LIMITS[adapter] || {}
15
+ option_key = :"default_#{column_type}_limit"
16
+ default_limit = options[option_key] || defaults[column_type] || 0
17
+ default_limit.zero? ? nil : default_limit
18
+ end
19
+
20
+ def adapter
21
+ ActiveRecord::Base.connection_config.fetch(:adapter).to_sym
22
+ rescue ActiveRecord::ConnectionNotEstablished
23
+ nil
24
+ end
25
+ end # of class methods
26
+ end
@@ -421,13 +421,7 @@ remove_foreign_key(#{table_name.inspect}, #{target.inspect})
421
421
  end
422
422
 
423
423
  def normalize_limit(column_type, column_options)
424
- Ridgepole::DEFAULTS_LIMITS.each do |default_column_type, limit|
425
- default_limit = @options[:"default_#{default_column_type}_limit"]
426
- next if default_limit <= 0
427
-
428
- if column_type == default_column_type
429
- column_options[:limit] ||= default_limit
430
- end
431
- end
424
+ default_limit = Ridgepole::DefaultsLimit.default_limit(column_type, @options)
425
+ column_options[:limit] ||= default_limit if default_limit
432
426
  end
433
427
  end
@@ -134,8 +134,19 @@ class Ridgepole::Diff
134
134
  definition_delta[:delete][column_name] = from_attrs
135
135
 
136
136
  if from_indices
137
+ modified_indices = []
138
+
137
139
  from_indices.each do |name, attrs|
138
- attrs[:column_name].delete(column_name)
140
+ if attrs[:column_name].delete(column_name)
141
+ modified_indices << name
142
+ end
143
+ end
144
+
145
+ # In PostgreSQL, the index is deleted when the column is deleted
146
+ if @options[:index_removed_drop_column]
147
+ from_indices.reject! do |name, attrs|
148
+ modified_indices.include?(name)
149
+ end
139
150
  end
140
151
 
141
152
  from_indices.reject! do |name, attrs|
@@ -239,15 +250,8 @@ class Ridgepole::Diff
239
250
  def normalize_column_options!(attrs)
240
251
  opts = attrs[:options]
241
252
  opts[:null] = true unless opts.has_key?(:null)
242
-
243
- Ridgepole::DEFAULTS_LIMITS.keys.each do |column_type|
244
- default_limit = @options[:"default_#{column_type}_limit"]
245
- next if default_limit <= 0
246
-
247
- if attrs[:type] == column_type and opts[:limit] == default_limit
248
- opts.delete(:limit)
249
- end
250
- end
253
+ default_limit = Ridgepole::DefaultsLimit.default_limit(attrs[:type], @options)
254
+ opts.delete(:limit) if opts[:limit] == default_limit
251
255
 
252
256
  # XXX: MySQL only?
253
257
  if not opts.has_key?(:default) and opts[:null]
@@ -1,3 +1,3 @@
1
1
  module Ridgepole
2
- VERSION = '0.6.0.beta2'
2
+ VERSION = '0.6.0.beta3'
3
3
  end
data/lib/ridgepole.rb CHANGED
@@ -6,18 +6,10 @@ require 'active_record'
6
6
  require 'active_support'
7
7
  require 'active_support/core_ext'
8
8
 
9
- module Ridgepole
10
- # for MySQL
11
- DEFAULTS_LIMITS = {
12
- :boolean => 1,
13
- :integer => 4,
14
- :float => 24,
15
- :string => 255,
16
- :text => 65535,
17
- }
18
- end
9
+ module Ridgepole; end
19
10
 
20
11
  require 'ridgepole/client'
12
+ require 'ridgepole/default_limit'
21
13
  require 'ridgepole/delta'
22
14
  require 'ridgepole/diff'
23
15
  require 'ridgepole/dsl_parser'
data/ridgepole.gemspec CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency 'rake'
24
24
  spec.add_development_dependency 'rspec', '>= 3.0.0'
25
25
  spec.add_development_dependency 'mysql2'
26
+ spec.add_development_dependency 'pg'
26
27
  spec.add_development_dependency 'coveralls'
27
28
  spec.add_development_dependency 'activerecord-mysql-awesome', '>= 0.0.7'
28
29
  end
@@ -1,3 +1,4 @@
1
+ unless postgresql?
1
2
  describe Ridgepole::Config do
2
3
  subject { Ridgepole::Config.load(config, env) }
3
4
 
@@ -81,7 +82,8 @@ describe Ridgepole::Config do
81
82
  it {
82
83
  expect {
83
84
  subject
84
- }.to raise_error(%r|o such file or directory - .*/database.yml|)
85
+ }.to raise_error Errno::ENOENT
85
86
  }
86
87
  end
87
88
  end
89
+ end
@@ -1,3 +1,4 @@
1
+ unless postgresql?
1
2
  describe 'ridgepole' do
2
3
  let(:differ) { false }
3
4
  let(:conf) { "'" + JSON.dump(conn_spec) + "'" }
@@ -36,6 +37,7 @@ describe 'ridgepole' do
36
37
  --enable-mysql-awesome
37
38
  --mysql-awesome-unsigned-pk
38
39
  --dump-without-table-options
40
+ --index-removed-drop-column
39
41
  -r, --require LIBS
40
42
  --log-file LOG_FILE
41
43
  --verbose
@@ -390,3 +392,4 @@ describe 'ridgepole' do
390
392
  end
391
393
  end
392
394
  end
395
+ end
@@ -1,3 +1,4 @@
1
+ unless postgresql?
1
2
  if mysql_awesome_enabled?
2
3
  describe 'Ridgepole::Client#diff -> migrate' do
3
4
  context 'when change column (add collation)' do
@@ -130,3 +131,4 @@ if mysql_awesome_enabled?
130
131
  end
131
132
  end
132
133
  end
134
+ end
@@ -1,3 +1,4 @@
1
+ unless postgresql?
1
2
  describe 'Ridgepole::Client.diff' do
2
3
  context 'when change column' do
3
4
  let(:tmpdir) { Dir.mktmpdir }
@@ -182,3 +183,4 @@ describe 'Ridgepole::Client.diff' do
182
183
  end
183
184
  end
184
185
  end
186
+ end
@@ -1,3 +1,4 @@
1
+ unless postgresql?
1
2
  describe 'Ridgepole::Client.diff' do
2
3
  context 'when change column' do
3
4
  let(:actual_dsl) {
@@ -152,3 +153,4 @@ describe 'Ridgepole::Client.diff' do
152
153
  }
153
154
  end
154
155
  end
156
+ end
@@ -1,3 +1,4 @@
1
+ unless postgresql?
1
2
  describe 'Ridgepole::Client.dump' do
2
3
  context 'when there is a tables' do
3
4
  before { restore_tables }
@@ -87,3 +88,4 @@ describe 'Ridgepole::Client.dump' do
87
88
  }
88
89
  end
89
90
  end
91
+ end
@@ -1,3 +1,4 @@
1
+ unless postgresql?
1
2
  describe 'Ridgepole::Client#dump' do
2
3
  context 'when there is a tables (dump some tables)' do
3
4
  before { restore_tables }
@@ -60,3 +61,4 @@ describe 'Ridgepole::Client#dump' do
60
61
  }
61
62
  end
62
63
  end
64
+ end
@@ -1,3 +1,4 @@
1
+ unless postgresql?
1
2
  describe 'Ridgepole::Client#dump' do
2
3
  context 'when there is a tables' do
3
4
  before { restore_tables }
@@ -73,3 +74,4 @@ describe 'Ridgepole::Client#dump' do
73
74
  }
74
75
  end
75
76
  end
77
+ end
@@ -1,3 +1,4 @@
1
+ unless postgresql?
1
2
  if mysql_awesome_enabled?
2
3
  describe 'Ridgepole::Client#dump' do
3
4
  let(:actual_dsl) {
@@ -41,3 +42,4 @@ if mysql_awesome_enabled?
41
42
  end
42
43
  end
43
44
  end
45
+ end
@@ -1,3 +1,4 @@
1
+ unless postgresql?
1
2
  describe 'Ridgepole::Client#diff -> migrate' do
2
3
  context 'when change fk' do
3
4
  let(:actual_dsl) {
@@ -9,7 +10,7 @@ create_table "child", force: :cascade do |t|
9
10
  t.integer "parent_id"#{unsigned_if_enabled}
10
11
  end
11
12
 
12
- add_index "child", ["parent_id"], name: "par_ind", using: :btree
13
+ add_index "child", ["parent_id"], name: "par_id", using: :btree
13
14
 
14
15
  add_foreign_key "child", "parent", name: "child_ibfk_1", on_delete: :cascade
15
16
  RUBY
@@ -21,7 +22,7 @@ create_table "child"#{unsigned_if_enabled}, force: :cascade do |t|
21
22
  t.integer "parent_id", limit: 4#{unsigned_if_enabled}
22
23
  end
23
24
 
24
- add_index "child", ["parent_id"], name: "par_ind", using: :btree
25
+ add_index "child", ["parent_id"], name: "par_id", using: :btree
25
26
 
26
27
  create_table "parent"#{unsigned_if_enabled}, force: :cascade do |t|
27
28
  end
@@ -36,7 +37,7 @@ create_table "child"#{unsigned_if_enabled}, force: :cascade do |t|
36
37
  t.integer "parent_id", limit: 4#{unsigned_if_enabled}
37
38
  end
38
39
 
39
- add_index "child", ["parent_id"], name: "par_ind", using: :btree
40
+ add_index "child", ["parent_id"], name: "par_id", using: :btree
40
41
 
41
42
  create_table "parent"#{unsigned_if_enabled}, force: :cascade do |t|
42
43
  end
@@ -58,3 +59,4 @@ add_foreign_key "child", "parent", name: "child_ibfk_1"
58
59
  }
59
60
  end
60
61
  end
62
+ end
@@ -1,3 +1,4 @@
1
+ unless postgresql?
1
2
  describe 'Ridgepole::Client#diff -> migrate' do
2
3
  context 'when create fk' do
3
4
  let(:actual_dsl) {
@@ -6,7 +7,7 @@ create_table "child"#{unsigned_if_enabled}, force: :cascade do |t|
6
7
  t.integer "parent_id", limit: 4#{unsigned_if_enabled}
7
8
  end
8
9
 
9
- add_index "child", ["parent_id"], name: "par_ind", using: :btree
10
+ add_index "child", ["parent_id"], name: "par_id", using: :btree
10
11
 
11
12
  create_table "parent"#{unsigned_if_enabled}, force: :cascade do |t|
12
13
  end
@@ -62,7 +63,7 @@ create_table "child", force: :cascade do |t|
62
63
  t.integer "parent_id", unsigned: true
63
64
  end
64
65
 
65
- add_index "child", ["parent_id"], name: "par_ind", using: :btree
66
+ add_index "child", ["parent_id"], name: "par_id", using: :btree
66
67
 
67
68
  add_foreign_key "child", "parent", name: "child_ibfk_1"
68
69
  RUBY
@@ -75,7 +76,7 @@ create_table "child"#{unsigned_if_enabled}, force: :cascade do |t|
75
76
  t.integer "parent_id", limit: 4#{unsigned_if_enabled}
76
77
  end
77
78
 
78
- add_index "child", ["parent_id"], name: "par_ind", using: :btree
79
+ add_index "child", ["parent_id"], name: "par_id", using: :btree
79
80
 
80
81
  create_table "parent"#{unsigned_if_enabled}, force: :cascade do |t|
81
82
  end
@@ -106,7 +107,7 @@ create_table "child", force: :cascade do |t|
106
107
  t.integer "parent_id", unsigned: true
107
108
  end
108
109
 
109
- add_index "child", ["parent_id"], name: "par_ind", using: :btree
110
+ add_index "child", ["parent_id"], name: "par_id", using: :btree
110
111
 
111
112
  add_foreign_key "child", "parent", name: "child_ibfk_1"
112
113
 
@@ -134,7 +135,7 @@ create_table "child", force: :cascade do |t|
134
135
  t.integer "parent_id", unsigned: true
135
136
  end
136
137
 
137
- add_index "child", ["parent_id"], name: "par_ind", using: :btree
138
+ add_index "child", ["parent_id"], name: "par_id", using: :btree
138
139
 
139
140
  add_foreign_key "child", "parent"
140
141
  RUBY
@@ -169,3 +170,4 @@ add_foreign_key "child", "parent", name: "child_ibfk_1"
169
170
  }
170
171
  end
171
172
  end
173
+ end
@@ -1,3 +1,4 @@
1
+ unless postgresql?
1
2
  describe 'Ridgepole::Client#diff -> migrate' do
2
3
  context 'when drop fk' do
3
4
  let(:actual_dsl) {
@@ -9,7 +10,7 @@ create_table "child"#{unsigned_if_enabled}, force: :cascade do |t|
9
10
  t.integer "parent_id"#{unsigned_if_enabled}
10
11
  end
11
12
 
12
- add_index "child", ["parent_id"], name: "par_ind", using: :btree
13
+ add_index "child", ["parent_id"], name: "par_id", using: :btree
13
14
 
14
15
  add_foreign_key "child", "parent", name: "child_ibfk_1"
15
16
  RUBY
@@ -28,7 +29,7 @@ create_table "child"#{unsigned_if_enabled}, force: :cascade do |t|
28
29
  t.integer "parent_id", limit: 4#{unsigned_if_enabled}
29
30
  end
30
31
 
31
- add_index "child", ["parent_id"], name: "par_ind", using: :btree
32
+ add_index "child", ["parent_id"], name: "par_id", using: :btree
32
33
 
33
34
  create_table "parent"#{unsigned_if_enabled}, force: :cascade do |t|
34
35
  end
@@ -77,7 +78,7 @@ create_table "child", force: :cascade do |t|
77
78
  t.integer "parent_id", unsigned: true
78
79
  end
79
80
 
80
- add_index "child", ["parent_id"], name: "par_ind", using: :btree
81
+ add_index "child", ["parent_id"], name: "par_id", using: :btree
81
82
 
82
83
  add_foreign_key "child", "parent", name: "child_ibfk_1"
83
84
  RUBY
@@ -89,7 +90,7 @@ create_table "child"#{unsigned_if_enabled}, force: :cascade do |t|
89
90
  t.integer "parent_id", limit: 4#{unsigned_if_enabled}
90
91
  end
91
92
 
92
- add_index "child", ["parent_id"], name: "par_ind", using: :btree
93
+ add_index "child", ["parent_id"], name: "par_id", using: :btree
93
94
 
94
95
  create_table "parent"#{unsigned_if_enabled}, force: :cascade do |t|
95
96
  end
@@ -110,3 +111,4 @@ add_foreign_key "child", "parent", name: "child_ibfk_1"
110
111
  }
111
112
  end
112
113
  end
114
+ end
@@ -1,3 +1,4 @@
1
+ unless postgresql?
1
2
  describe 'Ridgepole::Client#diff -> migrate' do
2
3
  context 'when there is an index of orphans' do
3
4
  let(:actual_dsl) { '' }
@@ -79,3 +80,4 @@ describe 'Ridgepole::Client#diff -> migrate' do
79
80
  }
80
81
  end
81
82
  end
83
+ end
@@ -1,3 +1,4 @@
1
+ unless postgresql?
1
2
  describe 'Ridgepole::Client#diff -> migrate' do
2
3
  context 'when add column (int/noop) (1)' do
3
4
  let(:actual_dsl) {
@@ -119,3 +120,4 @@ describe 'Ridgepole::Client#diff -> migrate' do
119
120
  }
120
121
  end
121
122
  end
123
+ end
@@ -1,3 +1,4 @@
1
+ unless postgresql?
1
2
  describe 'Ridgepole::Client#diff -> migrate' do
2
3
  context 'when add column' do
3
4
  let(:actual_dsl) {
@@ -182,3 +183,4 @@ describe 'Ridgepole::Client#diff -> migrate' do
182
183
  }
183
184
  end
184
185
  end
186
+ end
@@ -1,3 +1,4 @@
1
+ unless postgresql?
1
2
  describe 'Ridgepole::Client#diff -> migrate' do
2
3
  context 'when change column (no change)' do
3
4
  let(:actual_dsl) {
@@ -92,3 +93,4 @@ describe 'Ridgepole::Client#diff -> migrate' do
92
93
  }
93
94
  end
94
95
  end
96
+ end
@@ -1,3 +1,4 @@
1
+ unless postgresql?
1
2
  describe 'Ridgepole::Client#diff -> migrate' do
2
3
  context 'when use timestamps (no change)' do
3
4
  let(:actual_dsl) {
@@ -270,3 +271,4 @@ describe 'Ridgepole::Client#diff -> migrate' do
270
271
  }
271
272
  end
272
273
  end
274
+ end
@@ -0,0 +1,83 @@
1
+ unless postgresql?
2
+ describe 'Ridgepole::Client#diff -> migrate' do
3
+ context 'when change column (boolean without limit)' do
4
+ let(:actual_dsl) {
5
+ <<-RUBY
6
+ create_table "employees", primary_key: "emp_no", force: :cascade do |t|
7
+ t.date "birth_date", null: false
8
+ t.string "first_name", limit: 14, null: false
9
+ t.string "last_name", limit: 16, null: false
10
+ t.string "gender", limit: 1, null: false
11
+ t.date "hire_date", null: false
12
+ t.datetime "created_at", null: false
13
+ t.datetime "updated_at", null: false
14
+ t.boolean "registered"
15
+ end
16
+ RUBY
17
+ }
18
+
19
+ let(:expected_dsl) {
20
+ <<-RUBY
21
+ create_table "employees", primary_key: "emp_no", force: :cascade do |t|
22
+ t.date "birth_date", null: false
23
+ t.string "first_name", limit: 14, null: false
24
+ t.string "last_name", limit: 16, null: false
25
+ t.string "gender", limit: 1, null: false
26
+ t.date "hire_date", null: false
27
+ t.datetime "created_at", null: false
28
+ t.datetime "updated_at", null: false
29
+ t.boolean "registered"
30
+ end
31
+ RUBY
32
+ }
33
+
34
+ before { subject.diff(actual_dsl).migrate }
35
+ subject { client }
36
+
37
+ it {
38
+ delta = subject.diff(expected_dsl)
39
+ expect(delta.differ?).to be_falsey
40
+ }
41
+ end
42
+
43
+ context 'when change column (boolean with limit)' do
44
+ let(:actual_dsl) {
45
+ <<-RUBY
46
+ create_table "employees", primary_key: "emp_no", force: :cascade do |t|
47
+ t.date "birth_date", null: false
48
+ t.string "first_name", limit: 14, null: false
49
+ t.string "last_name", limit: 16, null: false
50
+ t.string "gender", limit: 1, null: false
51
+ t.date "hire_date", null: false
52
+ t.datetime "created_at", null: false
53
+ t.datetime "updated_at", null: false
54
+ t.boolean "registered"
55
+ end
56
+ RUBY
57
+ }
58
+
59
+ let(:expected_dsl) {
60
+ <<-RUBY
61
+ create_table "employees", primary_key: "emp_no", force: :cascade do |t|
62
+ t.date "birth_date", null: false
63
+ t.string "first_name", limit: 14, null: false
64
+ t.string "last_name", limit: 16, null: false
65
+ t.string "gender", limit: 1, null: false
66
+ t.date "hire_date", null: false
67
+ t.datetime "created_at", null: false
68
+ t.datetime "updated_at", null: false
69
+ t.boolean "registered", limit: 1
70
+ end
71
+ RUBY
72
+ }
73
+
74
+ before { subject.diff(actual_dsl).migrate }
75
+ subject { client }
76
+
77
+ it {
78
+ delta = subject.diff(expected_dsl)
79
+ expect(delta.differ?).to be_falsey
80
+ }
81
+ end
82
+ end
83
+ end
@@ -1,3 +1,4 @@
1
+ unless postgresql?
1
2
  describe 'Ridgepole::Client#diff -> migrate' do
2
3
  context 'when change float column' do
3
4
  let(:actual_dsl) {
@@ -66,3 +67,4 @@ describe 'Ridgepole::Client#diff -> migrate' do
66
67
  }
67
68
  end
68
69
  end
70
+ end
@@ -1,3 +1,4 @@
1
+ unless postgresql?
1
2
  describe 'Ridgepole::Client#diff -> migrate' do
2
3
  context 'when change column' do
3
4
  let(:actual_dsl) {
@@ -179,3 +180,4 @@ describe 'Ridgepole::Client#diff -> migrate' do
179
180
  }
180
181
  end
181
182
  end
183
+ end