ridgepole 0.7.1.beta → 0.7.1.beta2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ed6f5b00c9332bcd40b24033c2419b08130a5879
4
- data.tar.gz: 5eba0f7b43c51fcc70413bacf8c262f5224347fe
3
+ metadata.gz: 130a2d52ac418b8bfd080f5696072f1e6abd00b2
4
+ data.tar.gz: 33ec9d8a72263cf6b7bcdcdc601e272d5dec616a
5
5
  SHA512:
6
- metadata.gz: 606f4bbc6c975f8fbb8cb3ebfda3589b102e17eda2b807006a19e75ba2a9fe7bbced5e38bb53cec7764ba3cda125e84c76985aca5e2030107cca0997479513ca
7
- data.tar.gz: c8316fbc6e3814f3cd5d974ab5ff1985832309b175181949d4dd37ee113de9aa12131889e1100fbe64cbba9a1bd01c6f12d86a9ce9bc92bae9b80186b4fce659
6
+ metadata.gz: c5a60a3d8a64cd0110049c1ac599bbf326f61c968d3884a810229c294b9263ef8a02943c121b4d2bb71b4820759bbc4a4113900580b7b773cb53b1fdb21f8815
7
+ data.tar.gz: 940bfaf02ac5a69c60c5081b522c6e02a7dc782826475ae64aba8977903adba4da4c1a556ba424f9cb2403c3e1d583f5269911886335fefd93a6aac808628a76
data/.travis.yml CHANGED
@@ -15,9 +15,9 @@ before_script:
15
15
  - sudo service mysql stop
16
16
  - sudo service postgresql stop
17
17
  - docker-compose up -d
18
- - function mysql_ping { mysqladmin -u root -h 127.0.0.1 -ppassword ping > /dev/null 2> /dev/null; }
19
- - function mysql57_ping { mysqladmin -u root -h 127.0.0.1 -P 3307 -ppassword ping > /dev/null 2> /dev/null; }
20
- - function pg_ping { PGPASSWORD=password pg_isready -U postgres -h 127.0.0.1 > /dev/null 2> /dev/null; }
18
+ - function mysql_ping { mysqladmin -u root -h 127.0.0.1 -P 13316 -ppassword ping; }
19
+ - function mysql57_ping { mysqladmin -u root -h 127.0.0.1 -P 13317 -ppassword ping; }
20
+ - function pg_ping { PGPASSWORD=password pg_isready -U postgres -h 127.0.0.1 -p 15442; }
21
21
  - for i in {1..60}; do mysql_ping && break; sleep 1; done
22
22
  - for i in {1..60}; do mysql57_ping && break; sleep 1; done
23
23
  - for i in {1..60}; do pg_ping && break; sleep 1; done
@@ -37,7 +37,7 @@ class Ridgepole::Config
37
37
  def parse_database_url(config)
38
38
  uri = URI.parse(config)
39
39
 
40
- if [uri.scheme, uri.user, uri.host, uri.path].any? {|i| i.nil? }
40
+ if [uri.scheme, uri.user, uri.host, uri.path].any? {|i| i.nil? or i.empty? }
41
41
  raise "Invalid config: #{config.inspect}"
42
42
  end
43
43
 
@@ -1,6 +1,7 @@
1
1
  class Ridgepole::Dumper
2
2
  def initialize(options = {})
3
3
  @options = options
4
+ @logger = Ridgepole::Logger.instance
4
5
  end
5
6
 
6
7
  def dump
@@ -29,6 +30,13 @@ class Ridgepole::Dumper
29
30
  ActiveRecord::SchemaDumper.ignore_tables.clear
30
31
  end
31
32
 
33
+ stream.string.lines.each_cons(2) do |first_line, second_line|
34
+ if first_line =~ /\A# Could not dump/
35
+ @logger.warn("[WARNING] #{first_line.sub(/\A# /, '').chomp}")
36
+ @logger.warn(second_line.sub(/\A#/, '').chomp)
37
+ end
38
+ end
39
+
32
40
  dsl = stream.string.lines.select do |line|
33
41
  line !~ /\A#/ &&
34
42
  line !~ /\AActiveRecord::Schema\.define/ &&
@@ -1,3 +1,3 @@
1
1
  module Ridgepole
2
- VERSION = '0.7.1.beta'
2
+ VERSION = '0.7.1.beta2'
3
3
  end
@@ -0,0 +1,26 @@
1
+ describe 'Ridgepole::Client#dump' do
2
+ context 'when there is a tables' do
3
+ before { restore_tables_mysql_unknown_column_type }
4
+ subject { client }
5
+
6
+ it {
7
+ expect(subject.dump).to match_fuzzy erbh(<<-EOS)
8
+ create_table "clubs", <%= i cond(5.1, id: :integer) %>, unsigned: true, force: :cascade do |t|
9
+ t.string "name", default: "", null: false
10
+ t.index ["name"], name: "idx_name", unique: true, <%= i cond(5.0, using: :btree) %>
11
+ end
12
+ EOS
13
+ }
14
+
15
+ it {
16
+ expect(Ridgepole::Logger.instance).to receive(:warn).twice
17
+ subject.dump
18
+ }
19
+
20
+ it {
21
+ expect(Ridgepole::Logger.instance).to receive(:warn).with("[WARNING] Could not dump table \"places\" because of following StandardError")
22
+ expect(Ridgepole::Logger.instance).to receive(:warn).with(" Unknown type 'geometry' for column 'location'")
23
+ subject.dump
24
+ }
25
+ end
26
+ end
@@ -0,0 +1,17 @@
1
+ USE `ridgepole_test`;
2
+
3
+ DROP TABLE IF EXISTS `clubs`;
4
+ CREATE TABLE `clubs` (
5
+ `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
6
+ `name` varchar(255) NOT NULL DEFAULT '',
7
+ PRIMARY KEY (`id`),
8
+ UNIQUE KEY `idx_name` (`name`)
9
+ );
10
+
11
+ DROP TABLE IF EXISTS `places`;
12
+ CREATE TABLE `places` (
13
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
14
+ `location` geometry NOT NULL,
15
+ PRIMARY KEY (`id`),
16
+ KEY `id` (`id`)
17
+ );
data/spec/spec_helper.rb CHANGED
@@ -95,6 +95,11 @@ module SpecHelper
95
95
  system_raise_on_fail("#{PG_PSQL} ridgepole_test -q -f #{sql_file} 2>/dev/null")
96
96
  end
97
97
 
98
+ def restore_tables_mysql_unknown_column_type
99
+ sql_file = File.expand_path('../mysql/ridgepole_test_tables_unknown_column_type.sql', __FILE__)
100
+ system_raise_on_fail("#{MYSQL_CLI} < #{sql_file}")
101
+ end
102
+
98
103
  def client(options = {}, config = {})
99
104
  config = conn_spec(config)
100
105
  default_options = {debug: condition(:debug)}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ridgepole
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1.beta
4
+ version: 0.7.1.beta2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-21 00:00:00.000000000 Z
11
+ date: 2017-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -258,6 +258,7 @@ files:
258
258
  - spec/mysql/dump/dump_class_method_spec.rb
259
259
  - spec/mysql/dump/dump_some_tables_spec.rb
260
260
  - spec/mysql/dump/dump_spec.rb
261
+ - spec/mysql/dump/dump_unknown_column_type_spec.rb
261
262
  - spec/mysql/dump/dump_without_table_options_spec.rb
262
263
  - spec/mysql/fk/migrate_change_fk_spec.rb
263
264
  - spec/mysql/fk/migrate_create_fk_spec.rb
@@ -323,6 +324,7 @@ files:
323
324
  - spec/mysql/migrate_/migrate_drop_index_with_alter_spec.rb
324
325
  - spec/mysql/ridgepole_test_database.sql
325
326
  - spec/mysql/ridgepole_test_tables.sql
327
+ - spec/mysql/ridgepole_test_tables_unknown_column_type.sql
326
328
  - spec/mysql/text_blob_types/text_blob_types_spec.rb
327
329
  - spec/mysql/~default_name_fk/migrate_change_fk_spec.rb
328
330
  - spec/mysql/~default_name_fk/migrate_create_fk_spec.rb
@@ -406,6 +408,7 @@ test_files:
406
408
  - spec/mysql/dump/dump_class_method_spec.rb
407
409
  - spec/mysql/dump/dump_some_tables_spec.rb
408
410
  - spec/mysql/dump/dump_spec.rb
411
+ - spec/mysql/dump/dump_unknown_column_type_spec.rb
409
412
  - spec/mysql/dump/dump_without_table_options_spec.rb
410
413
  - spec/mysql/fk/migrate_change_fk_spec.rb
411
414
  - spec/mysql/fk/migrate_create_fk_spec.rb
@@ -471,6 +474,7 @@ test_files:
471
474
  - spec/mysql/migrate_/migrate_drop_index_with_alter_spec.rb
472
475
  - spec/mysql/ridgepole_test_database.sql
473
476
  - spec/mysql/ridgepole_test_tables.sql
477
+ - spec/mysql/ridgepole_test_tables_unknown_column_type.sql
474
478
  - spec/mysql/text_blob_types/text_blob_types_spec.rb
475
479
  - spec/mysql/~default_name_fk/migrate_change_fk_spec.rb
476
480
  - spec/mysql/~default_name_fk/migrate_create_fk_spec.rb