seed-snapshot 0.3.0 → 0.5.1

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: 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;"