ridgepole 0.7.1.beta → 0.7.1.beta2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  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