ridgepole 0.6.4 → 0.6.5.beta
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +18 -8
- data/Appraisals +8 -0
- data/README.md +26 -2
- data/docker-compose.yml +12 -0
- data/gemfiles/activerecord_4.2.gemfile +8 -0
- data/gemfiles/activerecord_5.0.gemfile +7 -0
- data/lib/ridgepole/diff.rb +3 -1
- data/lib/ridgepole/version.rb +1 -1
- data/ridgepole.gemspec +6 -2
- data/spec/cli_helper.rb +63 -0
- data/spec/mysql/bigint_pk/bigint_pk_spec.rb +45 -0
- data/spec/mysql/cli/config_spec.rb +0 -2
- data/spec/mysql/cli/ridgepole_spec.rb +58 -56
- data/spec/mysql/collation/collation_spec.rb +134 -138
- data/spec/mysql/diff/diff2_spec.rb +1 -3
- data/spec/mysql/diff/diff_spec.rb +1 -3
- data/spec/mysql/dump/dump_class_method_spec.rb +29 -11
- data/spec/mysql/dump/dump_some_tables_spec.rb +18 -8
- data/spec/mysql/dump/dump_spec.rb +28 -10
- data/spec/mysql/dump/dump_without_table_options_spec.rb +29 -33
- data/spec/mysql/fk/migrate_change_fk_spec.rb +2 -4
- data/spec/mysql/fk/migrate_create_fk_spec.rb +39 -29
- data/spec/mysql/fk/migrate_drop_fk_spec.rb +20 -22
- data/spec/mysql/migrate/check_orphan_index_spec.rb +2 -4
- data/spec/mysql/migrate/migrate_add_column2_spec.rb +33 -26
- data/spec/mysql/migrate/migrate_add_column_spec.rb +32 -22
- data/spec/mysql/migrate/migrate_add_column_with_alter_extra_spec.rb +26 -16
- data/spec/mysql/migrate/migrate_add_column_with_script_spec.rb +27 -17
- data/spec/mysql/migrate/migrate_change_column2_spec.rb +26 -16
- data/spec/mysql/migrate/migrate_change_column3_spec.rb +54 -44
- data/spec/mysql/migrate/migrate_change_column4_spec.rb +8 -10
- data/spec/mysql/migrate/migrate_change_column5_spec.rb +32 -22
- data/spec/mysql/migrate/migrate_change_column6_spec.rb +28 -30
- data/spec/mysql/migrate/migrate_change_column_default_spec.rb +34 -36
- data/spec/mysql/migrate/migrate_change_column_float_spec.rb +10 -12
- data/spec/mysql/migrate/migrate_change_column_spec.rb +41 -29
- data/spec/mysql/migrate/migrate_change_index2_spec.rb +12 -14
- data/spec/mysql/migrate/migrate_change_index3_spec.rb +24 -26
- data/spec/mysql/migrate/migrate_change_index4_spec.rb +34 -24
- data/spec/mysql/migrate/migrate_change_index5_spec.rb +26 -16
- data/spec/mysql/migrate/migrate_change_index6_spec.rb +38 -28
- data/spec/mysql/migrate/migrate_change_index_spec.rb +39 -29
- data/spec/mysql/migrate/migrate_change_table_option_spec.rb +26 -13
- data/spec/mysql/migrate/migrate_create_index2_spec.rb +30 -20
- data/spec/mysql/migrate/migrate_create_index_spec.rb +28 -18
- data/spec/mysql/migrate/migrate_create_table_spec.rb +24 -14
- data/spec/mysql/migrate/migrate_create_table_with_options_spec.rb +4 -6
- data/spec/mysql/migrate/migrate_create_table_with_script_spec.rb +23 -13
- data/spec/mysql/migrate/migrate_drop_column_and_index2_spec.rb +32 -22
- data/spec/mysql/migrate/migrate_drop_column_and_index_spec.rb +35 -25
- data/spec/mysql/migrate/migrate_drop_column_spec.rb +36 -26
- data/spec/mysql/migrate/migrate_drop_index_spec.rb +28 -18
- data/spec/mysql/migrate/migrate_drop_table_spec.rb +29 -19
- data/spec/mysql/migrate/migrate_duplicate_index_spec.rb +2 -4
- data/spec/mysql/migrate/migrate_duplicate_table_spec.rb +2 -4
- data/spec/mysql/migrate/migrate_empty_spec.rb +24 -14
- data/spec/mysql/migrate/migrate_execute_spec.rb +78 -65
- data/spec/mysql/migrate/migrate_log_file_spec.rb +22 -12
- data/spec/mysql/migrate/migrate_merge_mode_spec.rb +31 -21
- data/spec/mysql/migrate/migrate_noop_spec.rb +55 -45
- data/spec/mysql/migrate/migrate_rename_column_spec.rb +38 -28
- data/spec/mysql/migrate/migrate_rename_table_spec.rb +43 -33
- data/spec/mysql/migrate/migrate_same_default_null_spec.rb +28 -18
- data/spec/mysql/migrate/migrate_same_spec.rb +26 -12
- data/spec/mysql/migrate/migrate_script_error_spec.rb +3 -5
- data/spec/mysql/migrate/migrate_skip_rename_column_spec.rb +30 -20
- data/spec/mysql/migrate/migrate_skip_rename_table_spec.rb +30 -20
- data/spec/mysql/migrate/migrate_with_ignore_tables_spec.rb +44 -46
- data/spec/mysql/migrate/migrate_with_pre_post_query_spec.rb +6 -8
- data/spec/mysql/migrate/migrate_with_tables_spec.rb +20 -22
- data/spec/mysql/migrate_/migrate_create_index_with_alter_spec.rb +22 -12
- data/spec/mysql/migrate_/migrate_drop_index_with_alter_spec.rb +22 -12
- data/spec/mysql/~default_name_fk/migrate_change_fk_spec.rb +8 -10
- data/spec/mysql/~default_name_fk/migrate_create_fk_spec.rb +39 -29
- data/spec/mysql/~default_name_fk/migrate_drop_fk_spec.rb +20 -22
- data/spec/postgresql/diff/diff_spec.rb +7 -9
- data/spec/postgresql/dump/dump_spec.rb +2 -4
- data/spec/postgresql/fk/migrate_change_fk_spec.rb +8 -10
- data/spec/postgresql/fk/migrate_create_fk_spec.rb +24 -26
- data/spec/postgresql/fk/migrate_drop_fk_spec.rb +21 -23
- data/spec/postgresql/migrate/migrate_add_column_spec.rb +19 -22
- data/spec/postgresql/migrate/migrate_change_column_default_spec.rb +6 -8
- data/spec/postgresql/migrate/migrate_change_column_spec.rb +17 -19
- data/spec/postgresql/migrate/migrate_change_index_spec.rb +11 -13
- data/spec/postgresql/migrate/migrate_create_table_spec.rb +6 -9
- data/spec/postgresql/migrate/migrate_drop_column_spec.rb +12 -14
- data/spec/postgresql/migrate/migrate_drop_column_with_index_spec.rb +12 -14
- data/spec/postgresql/migrate/migrate_drop_index_spec.rb +10 -12
- data/spec/postgresql/migrate/migrate_drop_table_spec.rb +7 -9
- data/spec/postgresql/migrate/migrate_ext_cols_spec.rb +6 -8
- data/spec/postgresql/migrate/migrate_rename_column_spec.rb +12 -14
- data/spec/postgresql/migrate/migrate_rename_table_spec.rb +14 -16
- data/spec/postgresql/migrate/migrate_same_spec.rb +4 -6
- data/spec/postgresql/~default_name_fk/migrate_change_fk_spec.rb +8 -10
- data/spec/postgresql/~default_name_fk/migrate_create_fk_spec.rb +24 -26
- data/spec/postgresql/~default_name_fk/migrate_drop_fk_spec.rb +20 -22
- data/spec/processing_for_travis.rb +9 -0
- data/spec/spec_condition.rb +24 -0
- data/spec/spec_const.rb +18 -0
- data/spec/spec_helper.rb +125 -196
- data/spec/string_ext.rb +0 -13
- metadata +106 -32
- data/spec/mysql/bigint_pk/bigint_pkspec.rb +0 -47
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1afe38c33e11fab6506b3b4803488aec6058ddfb
|
4
|
+
data.tar.gz: 84819c79b7e1d2756f84682f2749ee9c51f09181
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1c834a74ee2b5f861f0a29fccb41b5411dfb9013aeebc9823ae5232a5994ee6b1b14075a1a74b85af005df6f9c4f799f375b7ac3ffd39ba8e1d1a9448404db5
|
7
|
+
data.tar.gz: 7153c5acdb81e28810c40049490a321ade6bd2f986b0d4a64435cb227ee1d73dd63480e5c8be0af2691af7333775d5664f4852f7281cd24c7091e2bd70fea99d
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -1,26 +1,36 @@
|
|
1
1
|
dist: trusty
|
2
2
|
sudo: required
|
3
3
|
language: ruby
|
4
|
-
cache:
|
4
|
+
cache:
|
5
|
+
- bundler
|
6
|
+
- apt
|
5
7
|
rvm:
|
6
|
-
- 2.0.0
|
7
|
-
- 2.1.8
|
8
8
|
- 2.2.4
|
9
9
|
- 2.3.0
|
10
10
|
before_install:
|
11
11
|
- gem install bundler
|
12
|
+
- sudo service postgresql stop
|
13
|
+
before_script:
|
14
|
+
- docker-compose up -d
|
15
|
+
- function mysql_ping { mysqladmin -u root -h 127.0.0.1 -ppassword ping > /dev/null 2> /dev/null; }
|
16
|
+
- function pg_ping { PGPASSWORD=password pg_isready -U postgres -h 127.0.0.1 > /dev/null 2> /dev/null; }
|
17
|
+
- for i in {1..60}; do mysql_ping && break; sleep 1; done
|
18
|
+
- for i in {1..60}; do pg_ping && break; sleep 1; done
|
12
19
|
script:
|
13
|
-
- bundle install
|
14
20
|
- bundle exec rake
|
21
|
+
gemfile:
|
22
|
+
- gemfiles/activerecord_4.2.gemfile
|
23
|
+
#- gemfiles/activerecord_5.0.gemfile
|
15
24
|
env:
|
16
25
|
matrix:
|
17
26
|
- ENABLE_MYSQL_AWESOME=0
|
18
27
|
- ENABLE_MYSQL_AWESOME=1
|
19
28
|
- POSTGRESQL=1
|
29
|
+
services:
|
30
|
+
- docker
|
20
31
|
addons:
|
21
|
-
postgresql: "9.4"
|
22
32
|
apt:
|
23
33
|
packages:
|
24
|
-
|
25
|
-
|
26
|
-
|
34
|
+
- mysql-client-core-5.6
|
35
|
+
- mysql-client-5.6
|
36
|
+
- postgresql-client-9.4
|
data/Appraisals
ADDED
data/README.md
CHANGED
@@ -50,6 +50,8 @@ It defines DB schema using [Rails DSL](http://guides.rubyonrails.org/migrations.
|
|
50
50
|
* Support `t.index` ([pull#64](https://github.com/winebarrel/ridgepole/pull/64))
|
51
51
|
* Remove migration_comments
|
52
52
|
* Fix foreign key apply order
|
53
|
+
* `>= 0.6.5`
|
54
|
+
* Fix rails version '>= 4.2', '< 6'
|
53
55
|
|
54
56
|
## Installation
|
55
57
|
|
@@ -307,13 +309,35 @@ $ ridgepole -a -c database.yml --mysql-use-alter --debug
|
|
307
309
|
Apply `Schemafile`
|
308
310
|
...
|
309
311
|
-- remove_index("dept_manager", {:name=>"emp_no"})
|
310
|
-
(19.2ms) ALTER TABLE `dept_manager` DROP INDEX `emp_no
|
312
|
+
(19.2ms) ALTER TABLE `dept_manager` DROP INDEX `emp_no`
|
311
313
|
-> 0.0200s
|
312
314
|
-- add_index("dept_manager", ["emp_no"], {:name=>"emp_no2", :using=>:btree})
|
313
|
-
(23.4ms) ALTER TABLE `dept_manager` ADD INDEX `emp_no2` USING btree (`emp_no`)
|
315
|
+
(23.4ms) ALTER TABLE `dept_manager` ADD INDEX `emp_no2` USING btree (`emp_no`)
|
314
316
|
-> 0.0243s
|
315
317
|
```
|
316
318
|
|
319
|
+
## Running tests
|
320
|
+
|
321
|
+
```sh
|
322
|
+
docker-compose up -d
|
323
|
+
bundle install
|
324
|
+
bundle exec appraisal install
|
325
|
+
bundle exec appraisal activerecord-4.2 rake
|
326
|
+
# ENABLE_MYSQL_AWESOME=1 bundle exec appraisal activerecord-4.2 rake
|
327
|
+
# POSTGRESQL=1 bundle exec appraisal activerecord-4.2 rake
|
328
|
+
```
|
329
|
+
|
330
|
+
**Notice:** mysql-client/postgresql-client is required.
|
331
|
+
|
332
|
+
### on OS X (docker-machine & VirtualBox)
|
333
|
+
|
334
|
+
Port forwarding is required.
|
335
|
+
|
336
|
+
```sh
|
337
|
+
VBoxManage controlvm default natpf1 "mysql,tcp,127.0.0.1,3306,,3306"
|
338
|
+
VBoxManage controlvm default natpf1 "psql,tcp,127.0.0.1,5432,,5432"
|
339
|
+
```
|
340
|
+
|
317
341
|
## Demo
|
318
342
|
|
319
343
|
* [asciinema.org/a/9349](https://asciinema.org/a/9349)
|
data/docker-compose.yml
ADDED
data/lib/ridgepole/diff.rb
CHANGED
@@ -88,7 +88,9 @@ class Ridgepole::Diff
|
|
88
88
|
|
89
89
|
def scan_options_change(table_name, from, to, table_delta)
|
90
90
|
unless from == to
|
91
|
-
Ridgepole::Logger.instance.warn("[WARNING] No difference of schema configuration for table `#{table_name}
|
91
|
+
Ridgepole::Logger.instance.warn("[WARNING] No difference of schema configuration for table `#{table_name}` but table options differ.")
|
92
|
+
Ridgepole::Logger.instance.warn(" from: #{from}")
|
93
|
+
Ridgepole::Logger.instance.warn(" to: #{to}")
|
92
94
|
end
|
93
95
|
end
|
94
96
|
|
data/lib/ridgepole/version.rb
CHANGED
data/ridgepole.gemspec
CHANGED
@@ -18,12 +18,16 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_dependency 'activerecord', '
|
21
|
+
spec.add_dependency 'activerecord', '>= 4.2', '< 6'
|
22
22
|
spec.add_development_dependency 'bundler'
|
23
23
|
spec.add_development_dependency 'rake'
|
24
24
|
spec.add_development_dependency 'rspec', '>= 3.0.0'
|
25
25
|
spec.add_development_dependency 'mysql2', '~> 0.3.20'
|
26
26
|
spec.add_development_dependency 'pg'
|
27
27
|
spec.add_development_dependency 'coveralls'
|
28
|
-
spec.add_development_dependency '
|
28
|
+
spec.add_development_dependency 'appraisal'
|
29
|
+
spec.add_development_dependency 'rspec-match_fuzzy', '>= 0.1.2'
|
30
|
+
spec.add_development_dependency 'erbh'
|
31
|
+
spec.add_development_dependency 'hash_modern_inspect', '>= 0.1.1'
|
32
|
+
spec.add_development_dependency 'hash_order_helper', '>= 0.1.1'
|
29
33
|
end
|
data/spec/cli_helper.rb
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
module CLIHelper
|
2
|
+
def default_cli_hook
|
3
|
+
<<-RUBY.strip_heredoc
|
4
|
+
require 'ridgepole'
|
5
|
+
|
6
|
+
class Ridgepole::Delta
|
7
|
+
def initialize(*args);
|
8
|
+
end
|
9
|
+
def migrate(*args)
|
10
|
+
puts "Ridgepole::Delta#migrate"
|
11
|
+
[#{differ}, "create_table :table do\\nend"]
|
12
|
+
end
|
13
|
+
def script
|
14
|
+
puts "Ridgepole::Delta#script"
|
15
|
+
|
16
|
+
"create_table :table do\\nend"
|
17
|
+
end
|
18
|
+
def differ?
|
19
|
+
puts "Ridgepole::Delta#differ?"
|
20
|
+
#{differ}
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
class Ridgepole::Client
|
25
|
+
def initialize(*args)
|
26
|
+
puts "Ridgepole::Client#initialize([\#{args.map {|i| i.kind_of?(File) ? i.path : i.inspect}.join(', ')}])"
|
27
|
+
end
|
28
|
+
def dump
|
29
|
+
puts "Ridgepole::Client#dump"
|
30
|
+
end
|
31
|
+
def diff(*args)
|
32
|
+
puts "Ridgepole::Client#diff"
|
33
|
+
Ridgepole::Delta.new
|
34
|
+
end
|
35
|
+
class << self
|
36
|
+
def diff(*args)
|
37
|
+
puts "Ridgepole::Client.diff([\#{args.map {|i| i.kind_of?(File) ? i.path : i.inspect}.join(', ')}])"
|
38
|
+
Ridgepole::Delta.new
|
39
|
+
end
|
40
|
+
def dump(args)
|
41
|
+
puts "Ridgepole::Client.dump"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
RUBY
|
46
|
+
end
|
47
|
+
|
48
|
+
def run_cli(options = {})
|
49
|
+
args = options[:args] || []
|
50
|
+
hook = options[:hook] || default_cli_hook
|
51
|
+
path = File.expand_path('../../bin/ridgepole', __FILE__)
|
52
|
+
|
53
|
+
Tempfile.open(["#{File.basename __FILE__}.#{$$}", '.rb']) do |f|
|
54
|
+
f.puts(hook)
|
55
|
+
f.puts(File.read(path))
|
56
|
+
f.flush
|
57
|
+
|
58
|
+
cmd = ([:ruby, f.path] + args).join(' ')
|
59
|
+
Open3.capture2e(cmd)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
include CLIHelper
|
@@ -0,0 +1,45 @@
|
|
1
|
+
describe 'Ridgepole::Client (with bigint pk)', condition: [:mysql_awesome_enabled] do
|
2
|
+
let(:dsl1) {
|
3
|
+
<<-RUBY
|
4
|
+
create_table "books", id: :primary_key, limit: 8, force: :cascade do |t|
|
5
|
+
t.string "title", limit: 255, null: false
|
6
|
+
t.integer "author_id", limit: 4, null: false
|
7
|
+
t.datetime "created_at"
|
8
|
+
t.datetime "updated_at"
|
9
|
+
end
|
10
|
+
RUBY
|
11
|
+
}
|
12
|
+
|
13
|
+
let(:dsl2) {
|
14
|
+
<<-RUBY
|
15
|
+
create_table "books", id: :bigint, force: :cascade do |t|
|
16
|
+
t.string "title", limit: 255, null: false
|
17
|
+
t.integer "author_id", limit: 4, null: false
|
18
|
+
t.datetime "created_at"
|
19
|
+
t.datetime "updated_at"
|
20
|
+
end
|
21
|
+
RUBY
|
22
|
+
}
|
23
|
+
|
24
|
+
context 'when with limit:8' do
|
25
|
+
subject { client }
|
26
|
+
|
27
|
+
before { subject.diff(dsl1).migrate }
|
28
|
+
|
29
|
+
it {
|
30
|
+
expect(show_create_table(:books)).to include '`id` bigint(20) NOT NULL AUTO_INCREMENT'
|
31
|
+
expect(subject.dump).to match_fuzzy dsl2
|
32
|
+
}
|
33
|
+
end
|
34
|
+
|
35
|
+
context 'when with id:bigint' do
|
36
|
+
subject { client }
|
37
|
+
|
38
|
+
before { subject.diff(dsl2).migrate }
|
39
|
+
|
40
|
+
it {
|
41
|
+
expect(show_create_table(:books)).to include '`id` bigint(20) NOT NULL AUTO_INCREMENT'
|
42
|
+
expect(subject.dump).to match_fuzzy dsl2
|
43
|
+
}
|
44
|
+
end
|
45
|
+
end
|
@@ -1,15 +1,18 @@
|
|
1
|
-
unless postgresql?
|
2
1
|
describe 'ridgepole' do
|
3
2
|
let(:differ) { false }
|
4
3
|
let(:conf) { "'" + JSON.dump(conn_spec) + "'" }
|
5
4
|
|
5
|
+
def conn_spec_str(database)
|
6
|
+
ActiveSupport::HashWithIndifferentAccess.new(conn_spec(database: database)).inspect
|
7
|
+
end
|
8
|
+
|
6
9
|
context 'when help' do
|
7
10
|
it do
|
8
11
|
out, status = run_cli(:args => ['-h'])
|
9
|
-
out = out.gsub(/Usage: .*\n/, '')
|
12
|
+
out = out.gsub(/Usage: .*\n/, '')
|
10
13
|
|
11
14
|
expect(status.success?).to be_truthy
|
12
|
-
expect(out).to
|
15
|
+
expect(out).to match_fuzzy <<-EOS
|
13
16
|
-c, --config CONF_OR_FILE
|
14
17
|
-E, --env ENVIRONMENT
|
15
18
|
-a, --apply
|
@@ -56,8 +59,8 @@ describe 'ridgepole' do
|
|
56
59
|
out, status = run_cli(:args => ['-c', conf, '-e', conf, conf])
|
57
60
|
|
58
61
|
expect(status.success?).to be_truthy
|
59
|
-
expect(out
|
60
|
-
Ridgepole::Client#initialize([{"
|
62
|
+
expect(out).to match_fuzzy <<-EOS
|
63
|
+
Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
61
64
|
# Export Schema
|
62
65
|
Ridgepole::Client#dump
|
63
66
|
EOS
|
@@ -68,8 +71,8 @@ describe 'ridgepole' do
|
|
68
71
|
out, status = run_cli(:args => ['-c', conf, '-e', '-o', f.path])
|
69
72
|
|
70
73
|
expect(status.success?).to be_truthy
|
71
|
-
expect(out
|
72
|
-
Ridgepole::Client#initialize([{"
|
74
|
+
expect(out).to match_fuzzy <<-EOS
|
75
|
+
Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
73
76
|
Export Schema to `#{f.path}`
|
74
77
|
Ridgepole::Client#dump
|
75
78
|
EOS
|
@@ -80,8 +83,8 @@ describe 'ridgepole' do
|
|
80
83
|
out, status = run_cli(:args => ['-c', conf, '-e', '-o', '-'])
|
81
84
|
|
82
85
|
expect(status.success?).to be_truthy
|
83
|
-
expect(out
|
84
|
-
Ridgepole::Client#initialize([{"
|
86
|
+
expect(out).to match_fuzzy <<-EOS
|
87
|
+
Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
85
88
|
# Export Schema
|
86
89
|
Ridgepole::Client#dump
|
87
90
|
EOS
|
@@ -91,8 +94,8 @@ describe 'ridgepole' do
|
|
91
94
|
out, status = run_cli(:args => ['-c', conf, '-e', '--split'])
|
92
95
|
|
93
96
|
expect(status.success?).to be_truthy
|
94
|
-
expect(out
|
95
|
-
Ridgepole::Client#initialize([{"
|
97
|
+
expect(out).to match_fuzzy <<-EOS
|
98
|
+
Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
96
99
|
Export Schema
|
97
100
|
Ridgepole::Client#dump
|
98
101
|
write `Schemafile`
|
@@ -104,8 +107,8 @@ describe 'ridgepole' do
|
|
104
107
|
out, status = run_cli(:args => ['-c', conf, '-e', '--split', '-o', f.path, conf, conf])
|
105
108
|
|
106
109
|
expect(status.success?).to be_truthy
|
107
|
-
expect(out
|
108
|
-
Ridgepole::Client#initialize([{"
|
110
|
+
expect(out).to match_fuzzy <<-EOS
|
111
|
+
Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
109
112
|
Export Schema
|
110
113
|
Ridgepole::Client#dump
|
111
114
|
write `#{f.path}`
|
@@ -119,8 +122,8 @@ describe 'ridgepole' do
|
|
119
122
|
out, status = run_cli(:args => ['-c', conf, '-a'])
|
120
123
|
|
121
124
|
expect(status.success?).to be_truthy
|
122
|
-
expect(out
|
123
|
-
Ridgepole::Client#initialize([{"
|
125
|
+
expect(out).to match_fuzzy <<-EOS
|
126
|
+
Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
124
127
|
Apply `Schemafile`
|
125
128
|
Ridgepole::Client#diff
|
126
129
|
Ridgepole::Delta#differ?
|
@@ -131,7 +134,7 @@ describe 'ridgepole' do
|
|
131
134
|
|
132
135
|
it 'apply with conf file' do
|
133
136
|
Tempfile.open(["#{File.basename __FILE__}.#{$$}", '.yml']) do |conf_file|
|
134
|
-
conf_file.puts <<-EOS
|
137
|
+
conf_file.puts <<-EOS
|
135
138
|
adapter: mysql2
|
136
139
|
database: ridgepole_test_for_conf_file
|
137
140
|
EOS
|
@@ -140,7 +143,7 @@ describe 'ridgepole' do
|
|
140
143
|
out, status = run_cli(:args => ['-c', conf_file.path, '-a', '--debug'])
|
141
144
|
|
142
145
|
expect(status.success?).to be_truthy
|
143
|
-
expect(out
|
146
|
+
expect(out).to match_fuzzy <<-EOS
|
144
147
|
Ridgepole::Client#initialize([{"adapter"=>"mysql2", "database"=>"ridgepole_test_for_conf_file"}, {:dry_run=>false, :debug=>true}])
|
145
148
|
Apply `Schemafile`
|
146
149
|
Ridgepole::Client#diff
|
@@ -153,7 +156,7 @@ describe 'ridgepole' do
|
|
153
156
|
|
154
157
|
it 'apply with conf file (production)' do
|
155
158
|
Tempfile.open(["#{File.basename __FILE__}.#{$$}", '.yml']) do |conf_file|
|
156
|
-
conf_file.puts <<-EOS
|
159
|
+
conf_file.puts <<-EOS
|
157
160
|
development:
|
158
161
|
adapter: mysql2
|
159
162
|
database: ridgepole_development
|
@@ -166,7 +169,7 @@ describe 'ridgepole' do
|
|
166
169
|
out, status = run_cli(:args => ['-c', conf_file.path, '-a', '--debug'])
|
167
170
|
|
168
171
|
expect(status.success?).to be_truthy
|
169
|
-
expect(out
|
172
|
+
expect(out).to match_fuzzy <<-EOS
|
170
173
|
Ridgepole::Client#initialize([{"adapter"=>"mysql2", "database"=>"ridgepole_development"}, {:dry_run=>false, :debug=>true}])
|
171
174
|
Apply `Schemafile`
|
172
175
|
Ridgepole::Client#diff
|
@@ -181,8 +184,8 @@ describe 'ridgepole' do
|
|
181
184
|
out, status = run_cli(:args => ['-c', conf, '-a', '--dry-run'])
|
182
185
|
|
183
186
|
expect(status.success?).to be_truthy
|
184
|
-
expect(out
|
185
|
-
Ridgepole::Client#initialize([{"
|
187
|
+
expect(out).to match_fuzzy <<-EOS
|
188
|
+
Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>true, :debug=>false}])
|
186
189
|
Apply `Schemafile` (dry-run)
|
187
190
|
Ridgepole::Client#diff
|
188
191
|
Ridgepole::Delta#differ?
|
@@ -197,8 +200,8 @@ describe 'ridgepole' do
|
|
197
200
|
out, status = run_cli(:args => ['-c', conf, '-a'])
|
198
201
|
|
199
202
|
expect(status.success?).to be_truthy
|
200
|
-
expect(out
|
201
|
-
Ridgepole::Client#initialize([{"
|
203
|
+
expect(out).to match_fuzzy <<-EOS
|
204
|
+
Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
202
205
|
Apply `Schemafile`
|
203
206
|
Ridgepole::Client#diff
|
204
207
|
Ridgepole::Delta#differ?
|
@@ -210,8 +213,8 @@ describe 'ridgepole' do
|
|
210
213
|
out, status = run_cli(:args => ['-c', conf, '-a', '--dry-run'])
|
211
214
|
|
212
215
|
expect(status.success?).to be_truthy
|
213
|
-
expect(out
|
214
|
-
Ridgepole::Client#initialize([{"
|
216
|
+
expect(out).to match_fuzzy <<-EOS
|
217
|
+
Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>true, :debug=>false}])
|
215
218
|
Apply `Schemafile` (dry-run)
|
216
219
|
Ridgepole::Client#diff
|
217
220
|
Ridgepole::Delta#differ?
|
@@ -233,9 +236,9 @@ describe 'ridgepole' do
|
|
233
236
|
out, status = run_cli(:args => ['-c', conf, '-d', conf, conf])
|
234
237
|
|
235
238
|
expect(status.success?).to be_truthy
|
236
|
-
expect(out
|
237
|
-
Ridgepole::Client#initialize([{"
|
238
|
-
Ridgepole::Client.diff([{"
|
239
|
+
expect(out).to match_fuzzy <<-EOS
|
240
|
+
Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
241
|
+
Ridgepole::Client.diff([#{conn_spec_str("ridgepole_test")}, #{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
239
242
|
Ridgepole::Delta#differ?
|
240
243
|
EOS
|
241
244
|
end
|
@@ -249,9 +252,9 @@ describe 'ridgepole' do
|
|
249
252
|
# Exit code 1 if there is a difference
|
250
253
|
expect(status.success?).to be_falsey
|
251
254
|
|
252
|
-
expect(out
|
253
|
-
Ridgepole::Client#initialize([{"
|
254
|
-
Ridgepole::Client.diff([{"
|
255
|
+
expect(out).to match_fuzzy <<-EOS
|
256
|
+
Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
257
|
+
Ridgepole::Client.diff([#{conn_spec_str("ridgepole_test")}, #{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
255
258
|
Ridgepole::Delta#differ?
|
256
259
|
Ridgepole::Delta#script
|
257
260
|
Ridgepole::Delta#script
|
@@ -268,7 +271,7 @@ describe 'ridgepole' do
|
|
268
271
|
context 'when config file' do
|
269
272
|
it '.yml' do
|
270
273
|
Tempfile.open(["#{File.basename __FILE__}.#{$$}", '.yml']) do |conf_file|
|
271
|
-
conf_file.puts <<-EOS
|
274
|
+
conf_file.puts <<-EOS
|
272
275
|
adapter: mysql2
|
273
276
|
database: ridgepole_test_for_conf_file
|
274
277
|
EOS
|
@@ -278,9 +281,9 @@ describe 'ridgepole' do
|
|
278
281
|
|
279
282
|
expect(status.success?).to be_truthy
|
280
283
|
|
281
|
-
expect(out
|
282
|
-
Ridgepole::Client#initialize([{"
|
283
|
-
Ridgepole::Client.diff([{"adapter"=>"mysql2", "database"=>"ridgepole_test_for_conf_file"}, {"
|
284
|
+
expect(out).to match_fuzzy <<-EOS
|
285
|
+
Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
286
|
+
Ridgepole::Client.diff([{"adapter"=>"mysql2", "database"=>"ridgepole_test_for_conf_file"}, #{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
284
287
|
Ridgepole::Delta#differ?
|
285
288
|
EOS
|
286
289
|
end
|
@@ -288,7 +291,7 @@ describe 'ridgepole' do
|
|
288
291
|
|
289
292
|
it '.yml (file2)' do
|
290
293
|
Tempfile.open(["#{File.basename __FILE__}.#{$$}", '.yml']) do |conf_file|
|
291
|
-
conf_file.puts <<-EOS
|
294
|
+
conf_file.puts <<-EOS
|
292
295
|
adapter: mysql2
|
293
296
|
database: ridgepole_test_for_conf_file
|
294
297
|
EOS
|
@@ -298,9 +301,9 @@ describe 'ridgepole' do
|
|
298
301
|
|
299
302
|
expect(status.success?).to be_truthy
|
300
303
|
|
301
|
-
expect(out
|
302
|
-
Ridgepole::Client#initialize([{"
|
303
|
-
Ridgepole::Client.diff([{"
|
304
|
+
expect(out).to match_fuzzy <<-EOS
|
305
|
+
Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
306
|
+
Ridgepole::Client.diff([#{conn_spec_str("ridgepole_test")}, {"adapter"=>"mysql2", "database"=>"ridgepole_test_for_conf_file"}, {:dry_run=>false, :debug=>false}])
|
304
307
|
Ridgepole::Delta#differ?
|
305
308
|
EOS
|
306
309
|
end
|
@@ -308,7 +311,7 @@ describe 'ridgepole' do
|
|
308
311
|
|
309
312
|
it '.yml (development)' do
|
310
313
|
Tempfile.open(["#{File.basename __FILE__}.#{$$}", '.yml']) do |conf_file|
|
311
|
-
conf_file.puts <<-EOS
|
314
|
+
conf_file.puts <<-EOS
|
312
315
|
development:
|
313
316
|
adapter: mysql2
|
314
317
|
database: ridgepole_development
|
@@ -322,9 +325,9 @@ describe 'ridgepole' do
|
|
322
325
|
|
323
326
|
expect(status.success?).to be_truthy
|
324
327
|
|
325
|
-
expect(out
|
326
|
-
Ridgepole::Client#initialize([{"
|
327
|
-
Ridgepole::Client.diff([{"adapter"=>"mysql2", "database"=>"ridgepole_development"}, {"
|
328
|
+
expect(out).to match_fuzzy <<-EOS
|
329
|
+
Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
330
|
+
Ridgepole::Client.diff([{"adapter"=>"mysql2", "database"=>"ridgepole_development"}, #{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
328
331
|
Ridgepole::Delta#differ?
|
329
332
|
EOS
|
330
333
|
end
|
@@ -332,7 +335,7 @@ describe 'ridgepole' do
|
|
332
335
|
|
333
336
|
it '.yml (production)' do
|
334
337
|
Tempfile.open(["#{File.basename __FILE__}.#{$$}", '.yml']) do |conf_file|
|
335
|
-
conf_file.puts <<-EOS
|
338
|
+
conf_file.puts <<-EOS
|
336
339
|
development:
|
337
340
|
adapter: mysql2
|
338
341
|
database: ridgepole_development
|
@@ -346,9 +349,9 @@ describe 'ridgepole' do
|
|
346
349
|
|
347
350
|
expect(status.success?).to be_truthy
|
348
351
|
|
349
|
-
expect(out
|
350
|
-
Ridgepole::Client#initialize([{"
|
351
|
-
Ridgepole::Client.diff([{"adapter"=>"mysql2", "database"=>"ridgepole_production"}, {"
|
352
|
+
expect(out).to match_fuzzy <<-EOS
|
353
|
+
Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
354
|
+
Ridgepole::Client.diff([{"adapter"=>"mysql2", "database"=>"ridgepole_production"}, #{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
352
355
|
Ridgepole::Delta#differ?
|
353
356
|
EOS
|
354
357
|
end
|
@@ -356,7 +359,7 @@ describe 'ridgepole' do
|
|
356
359
|
|
357
360
|
it '.yaml' do
|
358
361
|
Tempfile.open(["#{File.basename __FILE__}.#{$$}", '.yaml']) do |conf_file|
|
359
|
-
conf_file.puts <<-EOS
|
362
|
+
conf_file.puts <<-EOS
|
360
363
|
adapter: mysql2
|
361
364
|
database: ridgepole_test_for_conf_file
|
362
365
|
EOS
|
@@ -366,9 +369,9 @@ describe 'ridgepole' do
|
|
366
369
|
|
367
370
|
expect(status.success?).to be_truthy
|
368
371
|
|
369
|
-
expect(out
|
370
|
-
Ridgepole::Client#initialize([{"
|
371
|
-
Ridgepole::Client.diff([{"adapter"=>"mysql2", "database"=>"ridgepole_test_for_conf_file"}, {"
|
372
|
+
expect(out).to match_fuzzy <<-EOS
|
373
|
+
Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
374
|
+
Ridgepole::Client.diff([{"adapter"=>"mysql2", "database"=>"ridgepole_test_for_conf_file"}, #{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
372
375
|
Ridgepole::Delta#differ?
|
373
376
|
EOS
|
374
377
|
end
|
@@ -376,7 +379,7 @@ describe 'ridgepole' do
|
|
376
379
|
|
377
380
|
it '.rb' do
|
378
381
|
Tempfile.open(["#{File.basename __FILE__}.#{$$}", '.rb']) do |conf_file|
|
379
|
-
conf_file.puts <<-EOS
|
382
|
+
conf_file.puts <<-EOS
|
380
383
|
create_table :table do
|
381
384
|
end
|
382
385
|
EOS
|
@@ -386,9 +389,9 @@ describe 'ridgepole' do
|
|
386
389
|
|
387
390
|
expect(status.success?).to be_truthy
|
388
391
|
|
389
|
-
expect(out
|
390
|
-
Ridgepole::Client#initialize([{"
|
391
|
-
Ridgepole::Client.diff([#{conf_file.path}, {"
|
392
|
+
expect(out).to match_fuzzy <<-EOS
|
393
|
+
Ridgepole::Client#initialize([#{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
394
|
+
Ridgepole::Client.diff([#{conf_file.path}, #{conn_spec_str("ridgepole_test")}, {:dry_run=>false, :debug=>false}])
|
392
395
|
Ridgepole::Delta#differ?
|
393
396
|
EOS
|
394
397
|
end
|
@@ -396,4 +399,3 @@ describe 'ridgepole' do
|
|
396
399
|
end
|
397
400
|
end
|
398
401
|
end
|
399
|
-
end
|