seed-snapshot 0.3.0 → 0.5.1

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
  SHA256:
3
- metadata.gz: 176cd3b4c258649b54579fa34b32a8941b4e77efd582b533468d726f6740f029
4
- data.tar.gz: 24e10f5ae9e9b80aa80a71909ad9f9dd7268c21c2ead7029361503187d48ac61
3
+ metadata.gz: b174e66fd532071e7df51745f577acd7baa140d65b2bb26283e28530716fc944
4
+ data.tar.gz: bd676935a076d2e018316daf05d3a6c44c434c21b3ef00aed942ec0a7de38dd7
5
5
  SHA512:
6
- metadata.gz: bdd4f7f26cfd835e820957fc8701b24661cbcd120a0ed9a8f5d8ada938bee1e5193ea422e29c842b2a01f1948fb2c4e97aa76f80fab8c9e4b32fe33ea7200d9b
7
- data.tar.gz: cb12f4840390d1187c8b460e489b93fca664a37e551dd16711863067e49ed3b67867e495389781e2cb1ab353e368885c3a166c4c0f0eaa238c64f48de832f889
6
+ metadata.gz: b3aff9476550d5e63adbd0a6c1c2f4c79acd0c8b92bac79efd5e0895abba89d25023a61107248feff9e0e31998183c436123245cec8d66dc238d0d5fbd123b15
7
+ data.tar.gz: b3792ed4516c9f1f3a7eb7b7684ac987dd38eeeebaeb2089e6493eb95a445ae4a1503946f48ed05b57a4d261a5638c393cf0c8700526037b76a56c7c1d866828
@@ -0,0 +1,53 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ paths-ignore:
8
+ - '**.md'
9
+ - '**.txt'
10
+ pull_request:
11
+ paths-ignore:
12
+ - '**.md'
13
+ - '**.txt'
14
+
15
+ jobs:
16
+ build:
17
+ runs-on: ubuntu-latest
18
+
19
+ services:
20
+ mysql:
21
+ image: mysql:5.7
22
+ env:
23
+ MYSQL_ALLOW_EMPTY_PASSWORD: yes
24
+ MYSQL_DATABASE: 'activerecord_unittest'
25
+ ports:
26
+ - 3306:3306
27
+ options: --health-cmd "mysqladmin ping" --health-interval 10s --health-timeout 5s --health-retries 10
28
+
29
+ strategy:
30
+ matrix:
31
+ ruby-version: ['2.6', '2.7']
32
+ gemfile: ['Gemfile', 'gemfiles/ar_6_1.gemfile']
33
+
34
+ env:
35
+ BUNDLE_GEMFILE: ${{ matrix.gemfile }}
36
+
37
+ steps:
38
+ - name: Checkout
39
+ uses: actions/checkout@v3
40
+
41
+ - name: Set up Ruby ${{ matrix.ruby-version }}
42
+ uses: ruby/setup-ruby@v1
43
+ with:
44
+ ruby-version: ${{ matrix.ruby-version }}
45
+ bundler-cache: true
46
+
47
+ - name: Install dependencies
48
+ run: |
49
+ gem install bundler
50
+ bundle install --jobs 3 --retry 3
51
+
52
+ - name: Run tests
53
+ run: bundle exec rake
data/.gitignore CHANGED
@@ -12,4 +12,3 @@
12
12
  /vendor
13
13
 
14
14
  debug.log
15
- test/config.yml
data/Gemfile CHANGED
@@ -1,6 +1,11 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem "activerecord", "~> #{ENV['AR_VERSION']}" if ENV['AR_VERSION']
3
+ gem 'bundler'
4
+ gem 'rake'
5
+ gem 'pry'
6
+ gem 'minitest'
7
+ gem 'erubis'
8
+ gem 'mysql2', '>= 0.4.4', '< 0.6.0'
4
9
 
5
10
  # Specify your gem's dependencies in seed-snapshot.gemspec
6
11
  gemspec
@@ -0,0 +1,9 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'bundler'
4
+ gem 'rake'
5
+ gem 'pry'
6
+ gem 'minitest'
7
+ gem 'erubis'
8
+ gem 'mysql2', '>= 0.4.4', '< 0.6.0'
9
+ gem 'activerecord', '~> 6.1.0'
@@ -16,6 +16,10 @@ module Seed
16
16
  @schema_version ||= Digest::SHA1.hexdigest(get_all_versions.sort.join)
17
17
  end
18
18
 
19
+ def client_version
20
+ @client_version ||= ActiveRecord::Base.connection.raw_connection.info[:version]
21
+ end
22
+
19
23
  def database_options
20
24
  @options ||= ActiveRecord::Base.connection.raw_connection.query_options
21
25
  end
@@ -37,7 +41,10 @@ module Seed
37
41
  private
38
42
 
39
43
  def get_all_versions
40
- if ::Gem::Version.new(::ActiveRecord::VERSION::STRING) >= ::Gem::Version.new('5.2')
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')
41
48
  migration_paths = ::ActiveRecord::Migrator.migrations_paths
42
49
  ::ActiveRecord::MigrationContext.new(migration_paths).get_all_versions
43
50
  else
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
@@ -1,3 +1,3 @@
1
1
  module SeedSnapshot
2
- VERSION = "0.3.0"
2
+ VERSION = "0.5.1"
3
3
  end
@@ -17,11 +17,5 @@ Gem::Specification.new do |spec|
17
17
  spec.require_paths = ['lib']
18
18
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
19
19
 
20
- spec.add_development_dependency 'bundler'
21
- spec.add_development_dependency 'rake'
22
- spec.add_development_dependency 'pry'
23
- spec.add_development_dependency 'minitest'
24
- spec.add_development_dependency 'erubis'
25
- spec.add_development_dependency 'mysql2', '>= 0.4.4', '< 0.6.0'
26
20
  spec.add_runtime_dependency 'activerecord', '>= 4.2'
27
21
  end
metadata CHANGED
@@ -1,105 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seed-snapshot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - yo_waka
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-29 00:00:00.000000000 Z
11
+ date: 2022-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: pry
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: minitest
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: erubis
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: mysql2
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: 0.4.4
90
- - - "<"
91
- - !ruby/object:Gem::Version
92
- version: 0.6.0
93
- type: :development
94
- prerelease: false
95
- version_requirements: !ruby/object:Gem::Requirement
96
- requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- version: 0.4.4
100
- - - "<"
101
- - !ruby/object:Gem::Version
102
- version: 0.6.0
103
13
  - !ruby/object:Gem::Dependency
104
14
  name: activerecord
105
15
  requirement: !ruby/object:Gem::Requirement
@@ -121,14 +31,15 @@ executables: []
121
31
  extensions: []
122
32
  extra_rdoc_files: []
123
33
  files:
34
+ - ".github/workflows/main.yml"
124
35
  - ".gitignore"
125
- - ".travis.yml"
126
36
  - Gemfile
127
37
  - LICENSE.txt
128
38
  - README.md
129
39
  - Rakefile
130
40
  - bin/console
131
41
  - bin/setup
42
+ - gemfiles/ar_6_1.gemfile
132
43
  - lib/seed-snapshot.rb
133
44
  - lib/seed/configuration.rb
134
45
  - lib/seed/manifest.rb
@@ -156,8 +67,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
67
  - !ruby/object:Gem::Version
157
68
  version: '0'
158
69
  requirements: []
159
- rubyforge_project:
160
- rubygems_version: 2.7.6
70
+ rubygems_version: 3.0.3
161
71
  signing_key:
162
72
  specification_version: 4
163
73
  summary: Easy dump/restore tool for ActiveRecord.
data/.travis.yml DELETED
@@ -1,20 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.4
4
- - 2.5
5
- - 2.6
6
- services:
7
- - mysql
8
- env:
9
- - "AR_VERSION=4.2.8"
10
- - "AR_VERSION=4.2.9"
11
- - "AR_VERSION=5.0.4"
12
- - "AR_VERSION=5.1.3"
13
- - "AR_VERSION=5.2.3"
14
- sudo: false
15
- cache: bundler
16
- branches:
17
- only:
18
- - master
19
- before_install:
20
- - mysql -e "create database activerecord_unittest;"