seed-snapshot 0.4.0 → 0.5.2

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
  SHA256:
3
- metadata.gz: 8512d5e57f07a3cfb04a207a8b56cd6a05b850fae598c24d3e263ff6566de613
4
- data.tar.gz: 3385c0eedecfa2451fefdb088b3ff98a5fbe1f41254baaf387197c019bc7155c
3
+ metadata.gz: 0c087a187bb04a6153e749da89995c78fecc2b4882484142ebb45f59aace24e0
4
+ data.tar.gz: 187f259b3f887ca6f37ffdea9f8a5c87878a12f482235248656ce6e925c3cd07
5
5
  SHA512:
6
- metadata.gz: 1725747fea9e450d1ad025cf58b600105c50afd02e1c1509da33448b53d7738a16e1cdffa87ad33824392d5215fb3cabfa7eb1b870ab1b945b580e77893724e7
7
- data.tar.gz: a25b69dd1e508c9b507ffce260a26fea3a276fb9fc4d483c4e561f5ecd929800ea60a9aad83045cf317dff1c0be4173a9dae614a1abc6ba4369632df5d79d381
6
+ metadata.gz: b2608a4f75c7e9820a19852e3fc2a8faf8ebc9ca2d4ae18762d385e124c1b38069640b9e007e1dd0f4506e0fd7ec66d55d9ab542a768d50c79f4d72bc7806e02
7
+ data.tar.gz: 34f9e31f6d64e6c1ad59d19521adba47a1ce1bf9f125ff6031bd1e41ab4406320b364c72f87da47b552a4a87aed6562dec95320e346c2e846c5322b91d30f53f
@@ -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
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
@@ -14,9 +14,10 @@ module Seed
14
14
 
15
15
  Mysql.dump(
16
16
  @configuration.current_version_path,
17
- options.merge({
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
@@ -31,7 +32,7 @@ module Seed
31
32
 
32
33
  Mysql.restore(
33
34
  @configuration.current_version_path,
34
- options
35
+ **options
35
36
  )
36
37
  end
37
38
 
@@ -1,3 +1,3 @@
1
1
  module SeedSnapshot
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.2"
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.4.0
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - yo_waka
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-11 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,7 +67,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
67
  - !ruby/object:Gem::Version
157
68
  version: '0'
158
69
  requirements: []
159
- rubygems_version: 3.1.2
70
+ rubygems_version: 3.0.3
160
71
  signing_key:
161
72
  specification_version: 4
162
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;"