ridgepole 0.6.4 → 0.6.5.beta
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/.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
|