seed-snapshot 0.2.4 → 0.5.0

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
- 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.