dkdeploy-core 9.2.2 → 10.0.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 +4 -4
- data/.rubocop.yml +34 -8
- data/.travis.yml +5 -4
- data/CHANGELOG.md +55 -1
- data/LICENSE +1 -1
- data/README.md +4 -4
- data/Vagrantfile +7 -8
- data/dkdeploy-core.gemspec +9 -9
- data/lib/dkdeploy/core/version.rb +3 -3
- data/lib/dkdeploy/interaction_handler/mysql.rb +1 -1
- data/lib/dkdeploy/tasks/assets.rake +1 -1
- data/lib/dkdeploy/tasks/current_folder.rake +1 -1
- data/lib/dkdeploy/tasks/db.rake +136 -151
- data/spec/fixtures/application/config/deploy.rb +23 -23
- metadata +19 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6acb8c40708bb112f7b08cb5d00f26aa55c389a1fc556bcbafc73ab2a1b708f5
|
4
|
+
data.tar.gz: 5cb62f436995e877ae4892ea96bd6452aa382695a1962b9e4521675d2a44f8e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6cab72a5a1ec9750b09794cdb8a42f779139855f9888370aec8c874db5f23d5cf911ad7dcb2db223f9146db420f52d694bc23c043b306928efcc78128b42aab3
|
7
|
+
data.tar.gz: 60d480c68407d803c889529ec07309f848b2b7f54e9fd27e8176a4c5e11777347d201c86a6cff90f18ad83c7ae3cb33942c5b9ca93d15cb596b4e6b004baca6f
|
data/.rubocop.yml
CHANGED
@@ -5,21 +5,19 @@ AllCops:
|
|
5
5
|
- 'config/**/*'
|
6
6
|
- 'Vagrantfile'
|
7
7
|
- 'vendor/**/*'
|
8
|
-
TargetRubyVersion: 2.
|
8
|
+
TargetRubyVersion: 2.7
|
9
9
|
ExtraDetails: true
|
10
10
|
DisplayStyleGuide: true
|
11
11
|
DisplayCopNames: true
|
12
|
-
GlobalVars:
|
12
|
+
Style/GlobalVars:
|
13
13
|
AllowedVariables: []
|
14
|
-
MethodLength:
|
14
|
+
Metrics/MethodLength:
|
15
15
|
Max: 25
|
16
|
-
LineLength:
|
16
|
+
Layout/LineLength:
|
17
17
|
Max: 200
|
18
|
-
SpecialGlobalVars:
|
18
|
+
Style/SpecialGlobalVars:
|
19
19
|
Enabled: false
|
20
|
-
|
21
|
-
Enabled: false
|
22
|
-
CyclomaticComplexity:
|
20
|
+
Metrics/CyclomaticComplexity:
|
23
21
|
Max: 10
|
24
22
|
Metrics/BlockLength:
|
25
23
|
Enabled: false
|
@@ -27,3 +25,31 @@ Style/FormatStringToken:
|
|
27
25
|
Enabled: false
|
28
26
|
Style/MixinUsage:
|
29
27
|
Enabled: false
|
28
|
+
Layout/EmptyLinesAroundAttributeAccessor:
|
29
|
+
Enabled: true
|
30
|
+
Layout/SpaceAroundMethodCallOperator:
|
31
|
+
Enabled: true
|
32
|
+
Lint/DeprecatedOpenSSLConstant:
|
33
|
+
Enabled: true
|
34
|
+
Lint/MixedRegexpCaptureTypes:
|
35
|
+
Enabled: true
|
36
|
+
Lint/RaiseException:
|
37
|
+
Enabled: true
|
38
|
+
Lint/StructNewOverride:
|
39
|
+
Enabled: true
|
40
|
+
Style/ExponentialNotation:
|
41
|
+
Enabled: true
|
42
|
+
Style/HashEachMethods:
|
43
|
+
Enabled: true
|
44
|
+
Style/HashTransformKeys:
|
45
|
+
Enabled: true
|
46
|
+
Style/HashTransformValues:
|
47
|
+
Enabled: true
|
48
|
+
Style/RedundantFetchBlock:
|
49
|
+
Enabled: true
|
50
|
+
Style/RedundantRegexpCharacterClass:
|
51
|
+
Enabled: true
|
52
|
+
Style/RedundantRegexpEscape:
|
53
|
+
Enabled: true
|
54
|
+
Style/SlicingWithRange:
|
55
|
+
Enabled: true
|
data/.travis.yml
CHANGED
@@ -2,13 +2,14 @@ sudo: false
|
|
2
2
|
language: ruby
|
3
3
|
cache: bundler
|
4
4
|
rvm:
|
5
|
-
- 2.3
|
6
|
-
- 2.4
|
7
5
|
- 2.5
|
8
6
|
- 2.6
|
7
|
+
- 2.7
|
9
8
|
|
10
9
|
before_install:
|
11
|
-
- gem install bundler --no-
|
10
|
+
- gem install bundler --no-doc
|
11
|
+
- gem install bundler-audit --no-doc
|
12
12
|
|
13
13
|
script:
|
14
|
-
- bundle
|
14
|
+
- bundle-audit check --update
|
15
|
+
- bundle exec rubocop --display-cop-names --extra-details
|
data/CHANGELOG.md
CHANGED
@@ -2,10 +2,42 @@
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
4
4
|
|
5
|
+
## [10.0.0] - 2021-03-30
|
6
|
+
### Summary
|
7
|
+
|
8
|
+
- relaxed and updated gem dependencies
|
9
|
+
|
10
|
+
## [9.3.1] - 2020-08-20
|
11
|
+
### Summary
|
12
|
+
|
13
|
+
- use --no-tablespaces with mysqldump
|
14
|
+
|
15
|
+
## [9.3.0] - 2020-07-06
|
16
|
+
### Summary
|
17
|
+
|
18
|
+
- Update gem `capistrano` to 3.14.x
|
19
|
+
- Update gem `highline` to 2.0.x
|
20
|
+
- Update gem 'aruba' to 1.0.x
|
21
|
+
- Test ruby 2.7 via travis
|
22
|
+
- Requires Ruby v2.5 or later
|
23
|
+
|
24
|
+
## [9.2.4] - 2020-08-20
|
25
|
+
### Summary
|
26
|
+
|
27
|
+
- use --no-tablespaces with mysqldump
|
28
|
+
|
29
|
+
## [9.2.3] - 2019-05-29
|
30
|
+
### Summary
|
31
|
+
|
32
|
+
- Remove frozen string error
|
33
|
+
- Update interaction handler for new `htpasswd` versions
|
34
|
+
- Use correct test statement for task "remove_unless_symlinked"
|
35
|
+
|
5
36
|
## [9.2.2] - 2019-02-18
|
37
|
+
### Summary
|
6
38
|
|
7
39
|
- run tests and linter against Ruby 2.3
|
8
|
-
- fixed bug in clean_up_temporary_sources
|
40
|
+
- fixed bug in clean_up_temporary_sources
|
9
41
|
|
10
42
|
## [9.2.1] - 2019-12-06
|
11
43
|
### Summary
|
@@ -21,6 +53,11 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
21
53
|
- we no longer remove maintenance_config_file_path forcefully to make failures more apparent
|
22
54
|
- improved shell independence
|
23
55
|
|
56
|
+
## [9.1.1] - 2020-08-20
|
57
|
+
### Summary
|
58
|
+
|
59
|
+
- use --no-tablespaces with mysqldump
|
60
|
+
|
24
61
|
## [9.1.0] - 2018-02-09
|
25
62
|
### Summary
|
26
63
|
|
@@ -28,6 +65,11 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
28
65
|
- Update capistrano 3.10.1
|
29
66
|
- Always execute tasks for each server or at rollback
|
30
67
|
|
68
|
+
## [9.0.1] - 2020-08-20
|
69
|
+
### Summary
|
70
|
+
|
71
|
+
- use --no-tablespaces with mysqldump
|
72
|
+
|
31
73
|
## [9.0.0] 2017-10-16
|
32
74
|
### Summary
|
33
75
|
|
@@ -48,6 +90,11 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
48
90
|
- remove TYPO3 specific configuration
|
49
91
|
- change some SCM roles from app to all
|
50
92
|
|
93
|
+
## [8.0.2] - 2020-08-20
|
94
|
+
### Summary
|
95
|
+
|
96
|
+
- use --no-tablespaces with mysqldump
|
97
|
+
|
51
98
|
## [8.0.1] - 2017-05-15
|
52
99
|
### Summary
|
53
100
|
|
@@ -59,10 +106,17 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
59
106
|
- first public release
|
60
107
|
|
61
108
|
[Unreleased]: https://github.com/dkdeploy/dkdeploy-core/compare/master...develop
|
109
|
+
[9.3.1]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.3.1
|
110
|
+
[9.3.0]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.3.0
|
111
|
+
[9.2.4]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.2.4
|
112
|
+
[9.2.3]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.2.3
|
62
113
|
[9.2.2]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.2.2
|
63
114
|
[9.2.1]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.2.1
|
64
115
|
[9.2.0]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.2.0
|
116
|
+
[9.1.1]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.1.1
|
65
117
|
[9.1.0]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.1.0
|
118
|
+
[9.0.1]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.0.1
|
66
119
|
[9.0.0]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.0.0
|
120
|
+
[8.0.2]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v8.0.2
|
67
121
|
[8.0.1]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v8.0.1
|
68
122
|
[8.0.0]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v8.0.0
|
data/LICENSE
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Copyright (c) 2014-
|
1
|
+
Copyright (c) 2014-2021 dkd Internet Service GmbH, Frankfurt am Main (Germany), https://dkd.de/
|
2
2
|
|
3
3
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
4
4
|
|
data/README.md
CHANGED
@@ -13,7 +13,7 @@ This Rubygem `dkdeploy-core` represents the extension of [Capistrano](http://cap
|
|
13
13
|
|
14
14
|
Add this line to your application's `Gemfile`
|
15
15
|
|
16
|
-
gem 'dkdeploy-core', '~>
|
16
|
+
gem 'dkdeploy-core', '~> 10.0'
|
17
17
|
|
18
18
|
and then execute
|
19
19
|
|
@@ -64,7 +64,7 @@ The complete list of the dkdeploy constants you find in `/lib/capistrano/dkdeplo
|
|
64
64
|
|
65
65
|
### Prerequisite
|
66
66
|
|
67
|
-
rvm (v1.29.x) with installed Ruby 2.2.
|
67
|
+
rvm (v1.29.x) with installed Ruby 2.2 or newer.
|
68
68
|
|
69
69
|
Add the virtual box alias to your `hosts` file
|
70
70
|
|
@@ -74,7 +74,7 @@ Add the virtual box alias to your `hosts` file
|
|
74
74
|
|
75
75
|
1. Starting the local box (`vagrant up --provision`)
|
76
76
|
2. Checking coding styles (`rubocop`)
|
77
|
-
3. Running BDD cucumber tests (`cucumber`)
|
77
|
+
3. Running BDD cucumber tests (`BUNDLER_VERSION=2.1.4 cucumber`)
|
78
78
|
|
79
79
|
## Contributing
|
80
80
|
|
@@ -84,7 +84,7 @@ Add the virtual box alias to your `hosts` file
|
|
84
84
|
4. If project is not checked out already do git clone `git@github.com:dkdeploy/dkdeploy-core.git`
|
85
85
|
5. Checkout origin develop branch (`git checkout --track -b develop origin/develop`)
|
86
86
|
6. Git flow initialze `git flow init -d`
|
87
|
-
7. Installing gems `bundle install`
|
87
|
+
7. Installing gems `BUNDLER_VERSION=1.17.3 bundle install`
|
88
88
|
8. Create new feature branch (`git flow feature start my-new-feature`)
|
89
89
|
9. Run tests (README.md Testing)
|
90
90
|
10. Commit your changes (`git commit -am 'Add some feature'`)
|
data/Vagrantfile
CHANGED
@@ -19,6 +19,7 @@ Vagrant.configure(2) do |config|
|
|
19
19
|
|
20
20
|
config.vm.define('dkdeploy-core', primary: true) do |master_config|
|
21
21
|
master_config.vm.network 'private_network', ip: ip_address
|
22
|
+
master_config.vm.hostname = domain
|
22
23
|
|
23
24
|
# Chef settings
|
24
25
|
master_config.vm.provision :chef_solo do |chef|
|
@@ -41,14 +42,12 @@ Vagrant.configure(2) do |config|
|
|
41
42
|
'--audio', 'none'
|
42
43
|
]
|
43
44
|
end
|
44
|
-
end
|
45
45
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
config.vm.post_up_message = "Either install Vagrant plugin 'landrush' or add this entry to your host file: #{ip_address} #{domain}"
|
46
|
+
unless Vagrant.has_plugin?('vagrant-hostsupdater')
|
47
|
+
master_config.vm.post_up_message = <<-HEREDOC
|
48
|
+
Add following entries to your host file or install vagrant plugin vagrant-hostsupdater ("vagrant plugin install vagrant-hostsupdater") and restart virtual box
|
49
|
+
#{ip_address} #{domain}
|
50
|
+
HEREDOC
|
51
|
+
end
|
53
52
|
end
|
54
53
|
end
|
data/dkdeploy-core.gemspec
CHANGED
@@ -13,23 +13,23 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.description = 'dkd basic deployment tasks and strategies'
|
14
14
|
spec.summary = 'dkd basic deployment tasks and strategies'
|
15
15
|
spec.homepage = 'https://github.com/dkdeploy/dkdeploy-core'
|
16
|
-
spec.required_ruby_version = '~> 2.
|
16
|
+
spec.required_ruby_version = '~> 2.7'
|
17
17
|
|
18
18
|
spec.files = `git ls-files`.split($/)
|
19
|
-
spec.executables = spec.files.grep(%r{^bin
|
20
|
-
spec.test_files = spec.files.grep(%r{^(test|spec|features)
|
19
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
20
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
21
21
|
spec.require_paths = ['lib']
|
22
22
|
|
23
|
-
spec.add_development_dependency 'aruba', '~> 0
|
23
|
+
spec.add_development_dependency 'aruba', '~> 1.0'
|
24
24
|
spec.add_development_dependency 'bundler'
|
25
|
-
spec.add_development_dependency 'cucumber', '~>
|
25
|
+
spec.add_development_dependency 'cucumber', '~> 5.3'
|
26
26
|
spec.add_development_dependency 'dkdeploy-test_environment', '~> 2.0'
|
27
|
-
spec.add_development_dependency 'mysql2', '~> 0.
|
27
|
+
spec.add_development_dependency 'mysql2', '~> 0.5'
|
28
28
|
spec.add_development_dependency 'pry', '~> 0.10'
|
29
29
|
spec.add_development_dependency 'rake'
|
30
30
|
spec.add_development_dependency 'rspec', '~> 3.5'
|
31
|
-
spec.add_development_dependency 'rubocop', '~>
|
31
|
+
spec.add_development_dependency 'rubocop', '~> 1.12'
|
32
32
|
|
33
|
-
spec.add_dependency 'capistrano', '~> 3.
|
34
|
-
spec.add_dependency 'highline', '~>
|
33
|
+
spec.add_dependency 'capistrano', '~> 3.16'
|
34
|
+
spec.add_dependency 'highline', '~> 2.0.3'
|
35
35
|
end
|
@@ -30,7 +30,7 @@ module Dkdeploy
|
|
30
30
|
return raise 'Unexpected data from stream. Can not send password to undefined stream' unless @mysql_error_seen
|
31
31
|
|
32
32
|
# combine the multiple lines from error message. The fact that the error message will be shown multiple times is simply ignored
|
33
|
-
@return_message
|
33
|
+
@return_message += data
|
34
34
|
message = 'Error on executing MySQL command! Response (error code) is: '
|
35
35
|
SSHKit.config.output.send(:error, "#{message}\n #{@return_message}")
|
36
36
|
raise 'InteractionHandler caught a MySQL error'
|
@@ -46,7 +46,7 @@ namespace :assets do
|
|
46
46
|
on release_roles :web do
|
47
47
|
info I18n.t('directory.create', scope: :dkdeploy)
|
48
48
|
execute :mkdir, '-p', shared_path
|
49
|
-
execute :htpasswd, '-c', htpasswd_path, username, interaction_handler:
|
49
|
+
execute :htpasswd, '-c', htpasswd_path, username, interaction_handler: { /.*password.*/i => "#{password}\n" }
|
50
50
|
info I18n.t('tasks.assets.add_htpasswd.successfully_created', scope: :dkdeploy)
|
51
51
|
end
|
52
52
|
end
|
@@ -8,7 +8,7 @@ namespace :current_folder do
|
|
8
8
|
desc "Delete current folder unless it's a symlink"
|
9
9
|
task :remove_unlesss_symlinked do
|
10
10
|
on release_roles :all do
|
11
|
-
if test "[ -d #{current_path} && ! -L #{current_path} ]"
|
11
|
+
if test "[ -d #{current_path} ] && [ ! -L #{current_path} ]"
|
12
12
|
execute :rm, '-rf', current_path
|
13
13
|
else
|
14
14
|
info I18n.t('info.ignoring_current_folder', scope: :dkdeploy)
|
data/lib/dkdeploy/tasks/db.rake
CHANGED
@@ -82,23 +82,21 @@ namespace :db do
|
|
82
82
|
end
|
83
83
|
|
84
84
|
on primary :backend do
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
execute :rm, '-f', remote_file_name
|
101
|
-
end
|
85
|
+
db_settings = read_db_settings_for_context(self)
|
86
|
+
execute :rm, '-f', remote_zipped_file_name
|
87
|
+
execute :rm, '-f', remote_file_name
|
88
|
+
upload! local_zipped_file_name, remote_zipped_file_name, via: :scp
|
89
|
+
execute :gunzip, remote_zipped_file_name
|
90
|
+
execute :mysql,
|
91
|
+
"--default-character-set=#{db_settings.fetch('charset')}",
|
92
|
+
'-u', db_settings.fetch('username'),
|
93
|
+
'-p',
|
94
|
+
'-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), db_settings.fetch('name'),
|
95
|
+
'-e', "'source #{remote_file_name}'",
|
96
|
+
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
|
97
|
+
ensure
|
98
|
+
execute :rm, '-f', remote_zipped_file_name
|
99
|
+
execute :rm, '-f', remote_file_name
|
102
100
|
end
|
103
101
|
end
|
104
102
|
|
@@ -112,24 +110,22 @@ namespace :db do
|
|
112
110
|
remote_zipped_dump_file = "#{remote_dump_file}.gz"
|
113
111
|
|
114
112
|
on primary :backend do
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
execute :rm, '-f', remote_zipped_dump_file
|
132
|
-
end
|
113
|
+
db_settings = read_db_settings_for_context(self)
|
114
|
+
execute :rm, '-f', remote_dump_file
|
115
|
+
execute :rm, '-f', remote_zipped_dump_file
|
116
|
+
execute :mysqldump,
|
117
|
+
'--no-data', '--skip-set-charset', '--no-tablespaces',
|
118
|
+
"--default-character-set=#{db_settings.fetch('charset')}",
|
119
|
+
'-u', db_settings.fetch('username'),
|
120
|
+
'-p',
|
121
|
+
'-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), db_settings.fetch('name'),
|
122
|
+
'>', remote_dump_file,
|
123
|
+
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
|
124
|
+
execute :gzip, remote_dump_file
|
125
|
+
download! remote_zipped_dump_file, 'temp', via: :scp
|
126
|
+
ensure
|
127
|
+
execute :rm, '-f', remote_dump_file
|
128
|
+
execute :rm, '-f', remote_zipped_dump_file
|
133
129
|
end
|
134
130
|
end
|
135
131
|
|
@@ -140,29 +136,28 @@ namespace :db do
|
|
140
136
|
remote_zipped_dump_file = "#{remote_dump_file}.gz"
|
141
137
|
|
142
138
|
on primary :backend do
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
execute :rm, '-f', remote_zipped_dump_file
|
139
|
+
db_settings = read_db_settings_for_context(self)
|
140
|
+
execute :rm, '-f', remote_dump_file
|
141
|
+
execute :rm, '-f', remote_zipped_dump_file
|
147
142
|
|
148
|
-
|
149
|
-
|
150
|
-
end
|
151
|
-
|
152
|
-
execute :mysqldump,
|
153
|
-
"--default-character-set=#{db_settings.fetch('charset')}",
|
154
|
-
'--skip-set-charset',
|
155
|
-
'-u', db_settings.fetch('username'),
|
156
|
-
'-p',
|
157
|
-
'-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), ignore_tables_command_line, db_settings.fetch('name'),
|
158
|
-
'>', remote_dump_file,
|
159
|
-
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
|
160
|
-
execute :gzip, remote_dump_file
|
161
|
-
download! remote_zipped_dump_file, 'temp', via: :scp
|
162
|
-
ensure
|
163
|
-
execute :rm, '-f', remote_dump_file
|
164
|
-
execute :rm, '-f', remote_zipped_dump_file
|
143
|
+
ignore_tables_command_line = ignore_tables.inject('') do |command_line, table|
|
144
|
+
command_line + " --ignore-table=#{db_settings.fetch('name')}.#{table}"
|
165
145
|
end
|
146
|
+
|
147
|
+
execute :mysqldump,
|
148
|
+
"--default-character-set=#{db_settings.fetch('charset')}",
|
149
|
+
'--skip-set-charset',
|
150
|
+
'--no-tablespaces',
|
151
|
+
'-u', db_settings.fetch('username'),
|
152
|
+
'-p',
|
153
|
+
'-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), ignore_tables_command_line, db_settings.fetch('name'),
|
154
|
+
'>', remote_dump_file,
|
155
|
+
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
|
156
|
+
execute :gzip, remote_dump_file
|
157
|
+
download! remote_zipped_dump_file, 'temp', via: :scp
|
158
|
+
ensure
|
159
|
+
execute :rm, '-f', remote_dump_file
|
160
|
+
execute :rm, '-f', remote_zipped_dump_file
|
166
161
|
end
|
167
162
|
end
|
168
163
|
|
@@ -176,24 +171,22 @@ namespace :db do
|
|
176
171
|
remote_zipped_dump_file = "#{remote_dump_file}.gz"
|
177
172
|
|
178
173
|
on primary :backend do
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
execute :rm, '-f', remote_zipped_dump_file
|
196
|
-
end
|
174
|
+
db_settings = read_db_settings_for_context(self)
|
175
|
+
execute :rm, '-f', remote_dump_file
|
176
|
+
execute :rm, '-f', remote_zipped_dump_file
|
177
|
+
execute :mysqldump,
|
178
|
+
'--no-data', '--skip-set-charset', '--no-tablespaces',
|
179
|
+
"--default-character-set=#{db_settings.fetch('charset')}",
|
180
|
+
'-u', db_settings.fetch('username'),
|
181
|
+
'-p',
|
182
|
+
'-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), db_settings.fetch('name'), table_name,
|
183
|
+
'>', remote_dump_file,
|
184
|
+
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
|
185
|
+
execute :gzip, remote_dump_file
|
186
|
+
download! remote_zipped_dump_file, zipped_dump_file, via: :scp
|
187
|
+
ensure
|
188
|
+
execute :rm, '-f', remote_dump_file
|
189
|
+
execute :rm, '-f', remote_zipped_dump_file
|
197
190
|
end
|
198
191
|
end
|
199
192
|
|
@@ -211,27 +204,25 @@ namespace :db do
|
|
211
204
|
FileUtils.mkdir_p file_path
|
212
205
|
|
213
206
|
on primary :backend do
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
execute :rm, '-f', remote_zipped_file
|
234
|
-
end
|
207
|
+
db_settings = read_db_settings_for_context(self)
|
208
|
+
execute :rm, '-f', remote_file_name
|
209
|
+
execute :rm, '-f', remote_zipped_file
|
210
|
+
execute :mysqldump,
|
211
|
+
'--no-data', '--skip-set-charset', '--no-tablespaces',
|
212
|
+
'--no-create-info', '--skip-comments',
|
213
|
+
'--skip-extended-insert', '--skip-set-charset',
|
214
|
+
"--default-character-set=#{db_settings.fetch('charset')}",
|
215
|
+
'-u', db_settings.fetch('username'),
|
216
|
+
'-p',
|
217
|
+
'-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'),
|
218
|
+
db_settings.fetch('name'), table_names.join(' '),
|
219
|
+
'>', remote_file_name,
|
220
|
+
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
|
221
|
+
execute :gzip, remote_file_name
|
222
|
+
download! remote_zipped_file, local_zipped_file, via: :scp
|
223
|
+
ensure
|
224
|
+
execute :rm, '-f', remote_file_name
|
225
|
+
execute :rm, '-f', remote_zipped_file
|
235
226
|
end
|
236
227
|
|
237
228
|
run_locally do
|
@@ -246,23 +237,21 @@ namespace :db do
|
|
246
237
|
remote_zipped_default_content_file = "#{remote_default_content_file}.gz"
|
247
238
|
|
248
239
|
on primary :backend do
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
execute :rm, '-f', remote_zipped_default_content_file
|
265
|
-
end
|
240
|
+
db_settings = read_db_settings_for_context(self)
|
241
|
+
execute :rm, '-f', remote_default_content_file
|
242
|
+
execute :rm, '-f', remote_zipped_default_content_file
|
243
|
+
upload! local_zipped_default_content_file, remote_zipped_default_content_file, via: :scp
|
244
|
+
execute :gunzip, remote_zipped_default_content_file
|
245
|
+
execute :mysql,
|
246
|
+
"--default-character-set=#{db_settings.fetch('charset')}",
|
247
|
+
'-u', db_settings.fetch('username'),
|
248
|
+
'-p',
|
249
|
+
'-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), db_settings.fetch('name'),
|
250
|
+
'-e', "'source #{remote_default_content_file}'",
|
251
|
+
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
|
252
|
+
ensure
|
253
|
+
execute :rm, '-f', remote_default_content_file
|
254
|
+
execute :rm, '-f', remote_zipped_default_content_file
|
266
255
|
end
|
267
256
|
end
|
268
257
|
|
@@ -273,22 +262,20 @@ namespace :db do
|
|
273
262
|
remote_zipped_default_structure_file = "#{remote_default_structure_file}.gz"
|
274
263
|
|
275
264
|
on primary :backend do
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
execute :rm, '-f', remote_zipped_default_structure_file
|
291
|
-
end
|
265
|
+
db_settings = read_db_settings_for_context(self)
|
266
|
+
execute :rm, '-f', remote_default_structure_file
|
267
|
+
execute :rm, '-f', remote_zipped_default_structure_file
|
268
|
+
upload! local_zipped_default_structure_file, remote_zipped_default_structure_file, via: :scp
|
269
|
+
execute :gunzip, remote_zipped_default_structure_file
|
270
|
+
execute :mysql,
|
271
|
+
"--default-character-set=#{db_settings.fetch('charset')}",
|
272
|
+
'-u', db_settings.fetch('username'), '-p',
|
273
|
+
'-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), db_settings.fetch('name'),
|
274
|
+
'-e', "'source #{remote_default_structure_file}'",
|
275
|
+
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
|
276
|
+
ensure
|
277
|
+
execute :rm, '-f', remote_default_structure_file
|
278
|
+
execute :rm, '-f', remote_zipped_default_structure_file
|
292
279
|
end
|
293
280
|
end
|
294
281
|
|
@@ -307,27 +294,25 @@ namespace :db do
|
|
307
294
|
local_zipped_file = "#{local_file_name}.gz"
|
308
295
|
|
309
296
|
on primary :backend do
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
execute :rm, '-f', remote_zipped_file
|
330
|
-
end
|
297
|
+
db_settings = read_db_settings_for_context(self)
|
298
|
+
execute :rm, '-f', remote_file_name
|
299
|
+
execute :rm, '-f', remote_zipped_file
|
300
|
+
execute :mysqldump,
|
301
|
+
"--default-character-set=#{db_settings.fetch('charset')}",
|
302
|
+
'--no-create-info', '--skip-comments',
|
303
|
+
'--skip-extended-insert', '--skip-set-charset',
|
304
|
+
'--complete-insert', '--no-tablespaces',
|
305
|
+
'-u', db_settings.fetch('username'),
|
306
|
+
'-p',
|
307
|
+
'-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'),
|
308
|
+
db_settings.fetch('name'), table_names,
|
309
|
+
'>', remote_file_name,
|
310
|
+
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
|
311
|
+
execute :gzip, remote_file_name
|
312
|
+
download! remote_zipped_file, local_zipped_file, via: :scp
|
313
|
+
ensure
|
314
|
+
execute :rm, '-f', remote_file_name
|
315
|
+
execute :rm, '-f', remote_zipped_file
|
331
316
|
end
|
332
317
|
|
333
318
|
run_locally do
|
@@ -392,14 +377,14 @@ namespace :db do
|
|
392
377
|
'-e', "'source #{remote_dump_file}'",
|
393
378
|
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
|
394
379
|
end
|
395
|
-
rescue SSHKit::Command::Failed =>
|
380
|
+
rescue SSHKit::Command::Failed => e
|
396
381
|
run_locally do
|
397
382
|
error "Removing #{remote_dump_file} and #{remote_dump_md5_file}"
|
398
383
|
execute :rm, '-f', remote_dump_md5_file
|
399
384
|
execute :rm, '-f', remote_dump_file
|
400
385
|
end
|
401
386
|
task.reenable
|
402
|
-
raise "upload_tables failed: #{
|
387
|
+
raise "upload_tables failed: #{e.message}"
|
403
388
|
end
|
404
389
|
end
|
405
390
|
end
|
@@ -18,6 +18,8 @@ set :asset_default_content, %w[download]
|
|
18
18
|
set :asset_exclude_file, 'config/assets_exclude_file.txt'
|
19
19
|
set :asset_folders, %w[download]
|
20
20
|
|
21
|
+
set :additional_ignore_tables, %w[test_table]
|
22
|
+
|
21
23
|
require 'dkdeploy/interaction_handler/mysql'
|
22
24
|
namespace :db do
|
23
25
|
task :sql_error do
|
@@ -29,29 +31,27 @@ namespace :db do
|
|
29
31
|
sql_string = StringIO.new "INSERT INTO be_users (username, password, admin, tstamp, crdate)
|
30
32
|
VALUES ('#{username}', MD5('#{password}'), 1, #{now}, #{now});"
|
31
33
|
on primary :backend do
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
execute :rm, '-rf', remote_db_file
|
54
|
-
end
|
34
|
+
db_settings = {
|
35
|
+
charset: 'utf8',
|
36
|
+
username: 'root',
|
37
|
+
password: 'ilikerandompasswords',
|
38
|
+
host: '127.0.0.1',
|
39
|
+
port: 3306,
|
40
|
+
name: 'dkdeploy_core'
|
41
|
+
}
|
42
|
+
execute :mkdir, '-p', remote_db_file_path
|
43
|
+
execute :rm, '-rf', remote_db_file
|
44
|
+
|
45
|
+
upload! sql_string, remote_db_file
|
46
|
+
execute :mysql,
|
47
|
+
"--default-character-set=#{db_settings.fetch(:charset)}",
|
48
|
+
'-u', db_settings.fetch(:username),
|
49
|
+
'-p',
|
50
|
+
'-h', db_settings.fetch(:host), '-P', db_settings.fetch(:port), db_settings.fetch(:name),
|
51
|
+
'-e', "'source #{remote_db_file}'",
|
52
|
+
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch(:password))
|
53
|
+
ensure
|
54
|
+
execute :rm, '-rf', remote_db_file
|
55
55
|
end
|
56
56
|
end
|
57
57
|
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dkdeploy-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 10.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Timo Webler
|
8
8
|
- Nicolai Reuschling
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2021-03-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: aruba
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 0
|
20
|
+
version: '1.0'
|
21
21
|
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 0
|
27
|
+
version: '1.0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: bundler
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -45,14 +45,14 @@ dependencies:
|
|
45
45
|
requirements:
|
46
46
|
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: '
|
48
|
+
version: '5.3'
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: '
|
55
|
+
version: '5.3'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: dkdeploy-test_environment
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -73,14 +73,14 @@ dependencies:
|
|
73
73
|
requirements:
|
74
74
|
- - "~>"
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: '0.
|
76
|
+
version: '0.5'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
81
|
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version: '0.
|
83
|
+
version: '0.5'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: pry
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
@@ -129,42 +129,42 @@ dependencies:
|
|
129
129
|
requirements:
|
130
130
|
- - "~>"
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version:
|
132
|
+
version: '1.12'
|
133
133
|
type: :development
|
134
134
|
prerelease: false
|
135
135
|
version_requirements: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
137
|
- - "~>"
|
138
138
|
- !ruby/object:Gem::Version
|
139
|
-
version:
|
139
|
+
version: '1.12'
|
140
140
|
- !ruby/object:Gem::Dependency
|
141
141
|
name: capistrano
|
142
142
|
requirement: !ruby/object:Gem::Requirement
|
143
143
|
requirements:
|
144
144
|
- - "~>"
|
145
145
|
- !ruby/object:Gem::Version
|
146
|
-
version: 3.
|
146
|
+
version: '3.16'
|
147
147
|
type: :runtime
|
148
148
|
prerelease: false
|
149
149
|
version_requirements: !ruby/object:Gem::Requirement
|
150
150
|
requirements:
|
151
151
|
- - "~>"
|
152
152
|
- !ruby/object:Gem::Version
|
153
|
-
version: 3.
|
153
|
+
version: '3.16'
|
154
154
|
- !ruby/object:Gem::Dependency
|
155
155
|
name: highline
|
156
156
|
requirement: !ruby/object:Gem::Requirement
|
157
157
|
requirements:
|
158
158
|
- - "~>"
|
159
159
|
- !ruby/object:Gem::Version
|
160
|
-
version:
|
160
|
+
version: 2.0.3
|
161
161
|
type: :runtime
|
162
162
|
prerelease: false
|
163
163
|
version_requirements: !ruby/object:Gem::Requirement
|
164
164
|
requirements:
|
165
165
|
- - "~>"
|
166
166
|
- !ruby/object:Gem::Version
|
167
|
-
version:
|
167
|
+
version: 2.0.3
|
168
168
|
description: dkd basic deployment tasks and strategies
|
169
169
|
email:
|
170
170
|
- timo.webler@dkd.de
|
@@ -262,7 +262,7 @@ homepage: https://github.com/dkdeploy/dkdeploy-core
|
|
262
262
|
licenses:
|
263
263
|
- MIT
|
264
264
|
metadata: {}
|
265
|
-
post_install_message:
|
265
|
+
post_install_message:
|
266
266
|
rdoc_options: []
|
267
267
|
require_paths:
|
268
268
|
- lib
|
@@ -270,15 +270,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
270
270
|
requirements:
|
271
271
|
- - "~>"
|
272
272
|
- !ruby/object:Gem::Version
|
273
|
-
version: '2.
|
273
|
+
version: '2.7'
|
274
274
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
275
275
|
requirements:
|
276
276
|
- - ">="
|
277
277
|
- !ruby/object:Gem::Version
|
278
278
|
version: '0'
|
279
279
|
requirements: []
|
280
|
-
rubygems_version: 3.
|
281
|
-
signing_key:
|
280
|
+
rubygems_version: 3.2.15
|
281
|
+
signing_key:
|
282
282
|
specification_version: 4
|
283
283
|
summary: dkd basic deployment tasks and strategies
|
284
284
|
test_files:
|