uff_db_loader 3.0.1 → 3.1.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/lib/uff_db_loader/mysql.rb +1 -1
- data/lib/uff_db_loader/tasks/uff_db_loader.rake +13 -13
- data/lib/uff_db_loader/version.rb +1 -1
- data/lib/uff_db_loader.rb +11 -7
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da9439294400f1649a17e1cfe572708d68c043096fa5d2d8ec7b9d9c16aa44c1
|
4
|
+
data.tar.gz: b21a7eecaf6942bd18032a7c7a198d8bac84e7e0ee69558c887da8b07733f26b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b9cd41e8a56a23d406e3672179ab16d309cc93336d35319102e3c28cfc625a0992747b24da97237b5e55f59e6dd9b578681b0c689d31ae6fd0164e51a5aa8c7e
|
7
|
+
data.tar.gz: 5b39ed2a2c2975d8a0dec526a2a4897987fe7e33b618bbbf96abc465fb9e7fbf3c8cd66700fbd03c7030cd208ae1dfa4e4eab1b3a58e0795bf20ca5f3820bdf4
|
data/lib/uff_db_loader/mysql.rb
CHANGED
@@ -7,7 +7,7 @@ module UffDbLoader
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def self.dump_command_template
|
10
|
-
"ssh %user%@%host% \"docker exec -i %container_name% sh -c 'exec mysqldump --opt --no-tablespaces -uroot -p\"\\$MYSQL_ROOT_PASSWORD\" %database%'\" > %target%"
|
10
|
+
"ssh %user%@%host% \"docker exec -i %container_name% sh -c 'exec mysqldump --opt --single-transaction --routines --triggers --events --no-tablespaces -uroot -p\"\\$MYSQL_ROOT_PASSWORD\" %database%'\" > %target%"
|
11
11
|
end
|
12
12
|
|
13
13
|
def self.restore_command(database_name, result_file_path)
|
@@ -7,20 +7,20 @@ namespace :uff_db_loader do
|
|
7
7
|
task install: :environment do
|
8
8
|
UffDbLoader.create_initializer
|
9
9
|
|
10
|
-
|
10
|
+
UffDbLoader.log "👶 Created a Rails initializer file at #{UffDbLoader.initializer_path}."
|
11
11
|
|
12
12
|
if UffDbLoader.setup_dynamic_database_name_in_config
|
13
|
-
|
13
|
+
UffDbLoader.log "🤖 Updated #{UffDbLoader.config.database_config_file}. Happy hacking, beep boop!"
|
14
14
|
else
|
15
|
-
|
16
|
-
|
15
|
+
UffDbLoader.log "💩 Because YAML is a wonderful format, you need to adapt your config file by hand."
|
16
|
+
UffDbLoader.log "🆗 Go to #{UffDbLoader.config.database_config_file} and change the development database value to: #{UffDbLoader.database_name_template("default_database_name")}"
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
20
|
desc "Dumps a remote database from a selected environment to #{UffDbLoader.config.dumps_directory}"
|
21
21
|
task dump: :environment do
|
22
22
|
prompt = TTY::Prompt.new
|
23
|
-
environment = prompt.select("Which environment should we get the dump from?", UffDbLoader.config.environments)
|
23
|
+
environment = prompt.select("Which environment should we get the dump from?", UffDbLoader.config.environments, filter: true)
|
24
24
|
UffDbLoader.ensure_valid_environment!(environment)
|
25
25
|
UffDbLoader.dump_from(environment)
|
26
26
|
end
|
@@ -35,7 +35,7 @@ namespace :uff_db_loader do
|
|
35
35
|
ActiveRecord::Base.establish_connection(Rails.configuration.database_configuration["development"])
|
36
36
|
|
37
37
|
prompt = TTY::Prompt.new
|
38
|
-
database_name = prompt.select("Which dump should be restored?", UffDbLoader.dumps)
|
38
|
+
database_name = prompt.select("Which dump should be restored?", UffDbLoader.dumps, filter: true)
|
39
39
|
|
40
40
|
UffDbLoader.load_dump_into_database(database_name)
|
41
41
|
end
|
@@ -46,12 +46,12 @@ namespace :uff_db_loader do
|
|
46
46
|
|
47
47
|
prompt = TTY::Prompt.new
|
48
48
|
databases = UffDbLoader.databases
|
49
|
-
new_database = prompt.select("Which database do you want to switch to?", databases)
|
49
|
+
new_database = prompt.select("Which database do you want to switch to?", databases, filter: true)
|
50
50
|
|
51
51
|
UffDbLoader.remember_database_name(new_database)
|
52
52
|
UffDbLoader.restart_rails_server
|
53
53
|
|
54
|
-
|
54
|
+
UffDbLoader.log "♻️ Restarted rails server with new database."
|
55
55
|
end
|
56
56
|
|
57
57
|
desc "Dumps a remote database from a selected environment to #{UffDbLoader.config.dumps_directory}, then restores and selects the database"
|
@@ -59,11 +59,11 @@ namespace :uff_db_loader do
|
|
59
59
|
UffDbLoader.ensure_installation!
|
60
60
|
|
61
61
|
prompt = TTY::Prompt.new
|
62
|
-
environment = prompt.select("Which environment should we get the dump from?", UffDbLoader.config.environments)
|
62
|
+
environment = prompt.select("Which environment should we get the dump from?", UffDbLoader.config.environments, filter: true)
|
63
63
|
UffDbLoader.ensure_valid_environment!(environment)
|
64
64
|
result_file_path = UffDbLoader.dump_from(environment)
|
65
65
|
|
66
|
-
|
66
|
+
UffDbLoader.log "🤓 Reading from to #{result_file_path}"
|
67
67
|
|
68
68
|
database_name = File.basename(result_file_path, ".*")
|
69
69
|
UffDbLoader.load_dump_into_database(database_name)
|
@@ -74,11 +74,11 @@ namespace :uff_db_loader do
|
|
74
74
|
UffDbLoader.databases.each do |database_name|
|
75
75
|
next if database_name == ActiveRecord::Base.connection.current_database
|
76
76
|
|
77
|
-
|
77
|
+
UffDbLoader.log "Dropping #{database_name}"
|
78
78
|
UffDbLoader.drop_database(database_name)
|
79
79
|
end
|
80
80
|
|
81
|
-
|
81
|
+
UffDbLoader.log "Removing dumps from #{UffDbLoader.config.dumps_directory}"
|
82
82
|
UffDbLoader.prune_dump_directory
|
83
83
|
end
|
84
84
|
|
@@ -87,6 +87,6 @@ namespace :uff_db_loader do
|
|
87
87
|
UffDbLoader.remember_database_name("")
|
88
88
|
UffDbLoader.restart_rails_server
|
89
89
|
|
90
|
-
|
90
|
+
UffDbLoader.log "♻️ Restarted rails server with default database."
|
91
91
|
end
|
92
92
|
end
|
data/lib/uff_db_loader.rb
CHANGED
@@ -14,6 +14,10 @@ module UffDbLoader
|
|
14
14
|
@configuration ||= Configuration.new
|
15
15
|
end
|
16
16
|
|
17
|
+
def log(message)
|
18
|
+
puts "[UffDbLoader] #{message}"
|
19
|
+
end
|
20
|
+
|
17
21
|
def reset
|
18
22
|
@configuration = Configuration.new
|
19
23
|
end
|
@@ -29,14 +33,14 @@ module UffDbLoader
|
|
29
33
|
def dump_from(environment)
|
30
34
|
FileUtils.mkdir_p(config.dumps_directory)
|
31
35
|
|
32
|
-
|
36
|
+
log "⬇️ Creating dump ..."
|
33
37
|
|
34
38
|
target = dump_file_path(Time.now.strftime("#{config.app_name}_#{environment}_#{TIMESTAMP_FORMAT}"))
|
35
39
|
|
36
40
|
command_successful = system(dump_command(environment, target))
|
37
41
|
raise "Command did not run succesful: #{dump_command(environment, target)}" unless command_successful
|
38
42
|
|
39
|
-
|
43
|
+
log "✅ Succesfully dumped to #{target}"
|
40
44
|
|
41
45
|
target
|
42
46
|
end
|
@@ -106,19 +110,19 @@ module UffDbLoader
|
|
106
110
|
UffDbLoader.drop_database(database_name)
|
107
111
|
UffDbLoader.create_database(database_name)
|
108
112
|
|
109
|
-
|
113
|
+
log "🗂 Created database #{database_name}"
|
110
114
|
|
111
115
|
dump_file_path = dump_file_path(database_name)
|
112
116
|
|
113
117
|
command_successful = system(restore_command(database_name, dump_file_path))
|
114
118
|
raise "Command did not run succesful: #{restore_command(database_name, dump_file_path)}" unless command_successful
|
115
119
|
|
116
|
-
|
120
|
+
log "✅ Succesfully loaded #{dump_file_path} into #{database_name}"
|
117
121
|
|
118
122
|
remember_database_name(database_name)
|
119
123
|
restart_rails_server
|
120
124
|
|
121
|
-
|
125
|
+
log "♻️ Restarted rails server with new database."
|
122
126
|
end
|
123
127
|
|
124
128
|
def initializer_path
|
@@ -194,13 +198,13 @@ module UffDbLoader
|
|
194
198
|
when "postgresql"
|
195
199
|
":postgresql"
|
196
200
|
else
|
197
|
-
|
201
|
+
log "🙃 Could not automatically determine your used database system. Please adapt in the initializer."
|
198
202
|
":unknown"
|
199
203
|
end
|
200
204
|
end
|
201
205
|
|
202
206
|
def environments
|
203
|
-
ActiveRecord::Base.configurations.configurations.to_a.map(&:env_name) - ["test", "development"]
|
207
|
+
ActiveRecord::Base.configurations.configurations.to_a.map(&:env_name) - ["default", "test", "development"]
|
204
208
|
end
|
205
209
|
|
206
210
|
class ForbiddenEnvironmentError < StandardError; end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uff_db_loader
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andreas Hellwig
|
@@ -88,9 +88,9 @@ licenses:
|
|
88
88
|
- MIT
|
89
89
|
metadata:
|
90
90
|
bug_tracker_uri: https://github.com/rmehner/uff_db_loader/issues
|
91
|
-
changelog_uri: https://github.com/rmehner/uff_db_loader/releases/tag/3.0
|
91
|
+
changelog_uri: https://github.com/rmehner/uff_db_loader/releases/tag/3.1.0
|
92
92
|
homepage_uri: https://github.com/rmehner/uff_db_loader
|
93
|
-
source_code_uri: https://github.com/rmehner/uff_db_loader/tree/3.0
|
93
|
+
source_code_uri: https://github.com/rmehner/uff_db_loader/tree/3.1.0
|
94
94
|
post_install_message: Please run `bin/rails uff_db_loader:install` to complete the
|
95
95
|
installation.
|
96
96
|
rdoc_options: []
|