seed-snapshot 0.2.4 → 0.5.0

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
- SHA1:
3
- metadata.gz: 5a1782592bfb5ab2afa91864385ddb2f2e7afe70
4
- data.tar.gz: 4406bceb784d3488a78bac7402c8c13d983c5916
2
+ SHA256:
3
+ metadata.gz: e0e7df0e9d35515b67d89e5575e97ff66126d53b23fd1ebe9fa7c00cc5ce4e76
4
+ data.tar.gz: 3e4322ce3ebcfa46e0fb167e13cd768ad1705e27a2c3f2e9c30dd0121584f6fb
5
5
  SHA512:
6
- metadata.gz: 0221520aff47c4d2d8c4b3fdf51bda2dc92ea43454a81256ce9a10ad2eac8f1bf8b0c802bbf604f0e268ec6bb1d757e094d7beb4574623cc1f31ba1b5f884082
7
- data.tar.gz: fa86fa4dc13d5124f620c56bb593a92d3c78f920e7a522498cf97ddeb6bed0b8842de50102dd3b1c6a43ba03781c1141e9d28a8475477474f44f07121e7f96b4
6
+ metadata.gz: 94d21e022bda2990d59e218fdb8fb17df37204e10e9749d0c174e593f61c81086f0dc7d64948bcacda25841192089183b193c6675bd9a85a40f306034e5f78a2
7
+ data.tar.gz: edf2b22be083d56af3f0eb3724009841bb791e42022d57523dd292d1b119bd0b83097b23a1d013de7ad763ac3990a58918483fd307b56e32b3183e3592d4adcc
data/.travis.yml CHANGED
@@ -1,13 +1,16 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.3.4
4
- - 2.4.1
5
- - ruby-head
3
+ - 2.4
4
+ - 2.5
5
+ - 2.6
6
+ services:
7
+ - mysql
6
8
  env:
7
9
  - "AR_VERSION=4.2.8"
8
10
  - "AR_VERSION=4.2.9"
9
11
  - "AR_VERSION=5.0.4"
10
12
  - "AR_VERSION=5.1.3"
13
+ - "AR_VERSION=5.2.3"
11
14
  sudo: false
12
15
  cache: bundler
13
16
  branches:
@@ -13,7 +13,11 @@ module Seed
13
13
  end
14
14
 
15
15
  def schema_version
16
- @schema_version ||= Digest::SHA1.hexdigest(ActiveRecord::Migrator.get_all_versions.sort.join)
16
+ @schema_version ||= Digest::SHA1.hexdigest(get_all_versions.sort.join)
17
+ end
18
+
19
+ def client_version
20
+ @client_version ||= ActiveRecord::Base.connection.raw_connection.info[:version]
17
21
  end
18
22
 
19
23
  def database_options
@@ -33,5 +37,19 @@ module Seed
33
37
  def make_tmp_dir
34
38
  FileUtils.mkdir_p(base_path) unless File.exist?(base_path)
35
39
  end
40
+
41
+ private
42
+
43
+ def get_all_versions
44
+ if ::Gem::Version.new(::ActiveRecord::VERSION::STRING) >= ::Gem::Version.new('6.0')
45
+ migration_paths = ::ActiveRecord::Migrator.migrations_paths
46
+ ::ActiveRecord::MigrationContext.new(migration_paths, ::ActiveRecord::SchemaMigration).get_all_versions
47
+ elsif ::Gem::Version.new(::ActiveRecord::VERSION::STRING) >= ::Gem::Version.new('5.2')
48
+ migration_paths = ::ActiveRecord::Migrator.migrations_paths
49
+ ::ActiveRecord::MigrationContext.new(migration_paths).get_all_versions
50
+ else
51
+ ::ActiveRecord::Migrator.get_all_versions
52
+ end
53
+ end
36
54
  end
37
55
  end
data/lib/seed/mysql.rb CHANGED
@@ -1,8 +1,16 @@
1
1
  module Seed
2
2
  class Mysql
3
- def self.dump(file_path, username:, password:, host:, port:, database:, tables:, ignore_tables:)
3
+ def self.dump(file_path, username:, password:, host:, port:, database:, tables:, ignore_tables:, client_version:)
4
4
  host = 'localhost' unless host
5
- cmd = "MYSQL_PWD=#{password} mysqldump -u #{username} -h #{host} #{database} -t #{allow_tables_option(tables)} #{ignore_tables_option(ignore_tables)} > #{file_path}"
5
+
6
+ additional_options =
7
+ if client_version.match?(/\A8/)
8
+ '--skip-column-statistics'
9
+ else
10
+ ''
11
+ end
12
+
13
+ cmd = "MYSQL_PWD=#{password} mysqldump -u #{username} -h #{host} #{database} -t #{allow_tables_option(tables)} #{ignore_tables_option(ignore_tables)} --no-tablespaces #{additional_options} > #{file_path}"
6
14
  system cmd
7
15
  end
8
16
 
data/lib/seed/snapshot.rb CHANGED
@@ -16,7 +16,8 @@ module Seed
16
16
  @configuration.current_version_path,
17
17
  options.merge({
18
18
  tables: tables(classes),
19
- ignore_tables: ignore_tables(ignore_classes)
19
+ ignore_tables: ignore_tables(ignore_classes),
20
+ client_version: @configuration.client_version
20
21
  })
21
22
  )
22
23
  end
@@ -69,7 +70,9 @@ module Seed
69
70
 
70
71
  def ignore_tables(classes)
71
72
  db = @configuration.database_options[:database]
72
- tables(classes).push("#{db}.schema_migrations")
73
+
74
+ # mysqldump `--ignore-table` options require database name.
75
+ tables(classes).push('schema_migrations').map {|t| "#{db}.#{t}" }
73
76
  end
74
77
  end
75
78
  end
@@ -1,3 +1,3 @@
1
1
  module SeedSnapshot
2
- VERSION = "0.2.4"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -22,6 +22,6 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency 'pry'
23
23
  spec.add_development_dependency 'minitest'
24
24
  spec.add_development_dependency 'erubis'
25
- spec.add_development_dependency 'mysql2', '>= 0.3', '< 0.4'
25
+ spec.add_development_dependency 'mysql2', '>= 0.4.4', '< 0.6.0'
26
26
  spec.add_runtime_dependency 'activerecord', '>= 4.2'
27
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seed-snapshot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - yo_waka
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-18 00:00:00.000000000 Z
11
+ date: 2022-05-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -86,20 +86,20 @@ dependencies:
86
86
  requirements:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '0.3'
89
+ version: 0.4.4
90
90
  - - "<"
91
91
  - !ruby/object:Gem::Version
92
- version: '0.4'
92
+ version: 0.6.0
93
93
  type: :development
94
94
  prerelease: false
95
95
  version_requirements: !ruby/object:Gem::Requirement
96
96
  requirements:
97
97
  - - ">="
98
98
  - !ruby/object:Gem::Version
99
- version: '0.3'
99
+ version: 0.4.4
100
100
  - - "<"
101
101
  - !ruby/object:Gem::Version
102
- version: '0.4'
102
+ version: 0.6.0
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: activerecord
105
105
  requirement: !ruby/object:Gem::Requirement
@@ -156,8 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
156
  - !ruby/object:Gem::Version
157
157
  version: '0'
158
158
  requirements: []
159
- rubyforge_project:
160
- rubygems_version: 2.5.2
159
+ rubygems_version: 3.0.3
161
160
  signing_key:
162
161
  specification_version: 4
163
162
  summary: Easy dump/restore tool for ActiveRecord.