remote_database_importer 0.1.4 → 0.1.6

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: 28a65a635e4ee78fdbce0dfce253b88a44fa190a887a8d68f928f5193d298fec
4
- data.tar.gz: c23343009f9e8cf5d819fdf4a2dae6e88e380d30ef7591382fc900bcb1f40e04
3
+ metadata.gz: 9326e0cda0a7b8e678c0b295c7cf832003fb7f8ce20cf4d0c54aa50971ba7644
4
+ data.tar.gz: a65791d2d7757ce1cf9b1b9da4b9bf48b1f5455b9e7ba6ccd1e3207cadf6f00f
5
5
  SHA512:
6
- metadata.gz: 7b7bd6d20734483e93dcefec67a7890300f6946047003de8a12915a982063d0de086f0b372f188271b6f3c0c51b22bb6b5baac50f25034e7bb548bee5a19817e
7
- data.tar.gz: 7cc6a60c1141353e8cdf2d910fcab0d0f9c991e56c7cc0fbda513f3461fbaa6ba1abe16f0bcb07f13a99717fed81c519b01455da6b257fa0852cede0366d9e03
6
+ metadata.gz: ef95e2381637966692792848bf4f4f64c6eebe726a6c9588dd4d767b975d5c737aaefd25194a771f40e9b451f23f09a1efcca0e458526902aad5208b9cbca013
7
+ data.tar.gz: 91b80d7b5174af2ad34741d93d32c97206872c52f808d2cd7c02630314bf22fd66812e6600a26730defb0cd3544deb0cf3e55b099863a3f864e46cf6412b4148
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.6 (2026-06-15)
4
+ - Fix spinner output
5
+
6
+ ## 0.1.5 (2022-12-03)
7
+ - Define custom commands for each environment
8
+
3
9
  ## 0.1.4 (2022-11-17)
4
10
  - Remove colorize as a dependency
5
11
  - Code refactoring
data/Gemfile CHANGED
@@ -5,8 +5,8 @@ source "https://rubygems.org"
5
5
  # Specify your gem's dependencies in remote_database_importer.gemspec
6
6
  gemspec
7
7
 
8
- gem "rake", "~> 13.0"
8
+ gem "rake", "~> 13.4"
9
9
 
10
- gem "rspec", "~> 3.0"
10
+ gem "rspec", "~> 3.13"
11
11
 
12
- gem "standard", "~> 1.3"
12
+ gem "standard", "~> 1.55"
data/Gemfile.lock CHANGED
@@ -1,71 +1,90 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- remote_database_importer (0.1.4)
4
+ remote_database_importer (0.1.5)
5
5
  tty-config (~> 0.6)
6
- tty-spinner (~> 0.9)
6
+ tty-spinner (~> 0.9.3)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- ast (2.4.2)
12
- diff-lcs (1.5.0)
13
- json (2.6.2)
14
- parallel (1.22.1)
15
- parser (3.1.2.1)
11
+ ast (2.4.3)
12
+ diff-lcs (1.5.1)
13
+ json (2.19.9)
14
+ language_server-protocol (3.17.0.5)
15
+ lint_roller (1.1.0)
16
+ parallel (2.1.0)
17
+ parser (3.3.11.1)
16
18
  ast (~> 2.4.1)
19
+ racc
20
+ prism (1.9.0)
21
+ racc (1.8.1)
17
22
  rainbow (3.1.1)
18
- rake (13.0.6)
19
- regexp_parser (2.6.0)
20
- rexml (3.2.5)
21
- rspec (3.11.0)
22
- rspec-core (~> 3.11.0)
23
- rspec-expectations (~> 3.11.0)
24
- rspec-mocks (~> 3.11.0)
25
- rspec-core (3.11.0)
26
- rspec-support (~> 3.11.0)
27
- rspec-expectations (3.11.1)
23
+ rake (13.4.2)
24
+ regexp_parser (2.12.0)
25
+ rspec (3.13.0)
26
+ rspec-core (~> 3.13.0)
27
+ rspec-expectations (~> 3.13.0)
28
+ rspec-mocks (~> 3.13.0)
29
+ rspec-core (3.13.0)
30
+ rspec-support (~> 3.13.0)
31
+ rspec-expectations (3.13.0)
28
32
  diff-lcs (>= 1.2.0, < 2.0)
29
- rspec-support (~> 3.11.0)
30
- rspec-mocks (3.11.1)
33
+ rspec-support (~> 3.13.0)
34
+ rspec-mocks (3.13.0)
31
35
  diff-lcs (>= 1.2.0, < 2.0)
32
- rspec-support (~> 3.11.0)
33
- rspec-support (3.11.1)
34
- rubocop (1.35.1)
36
+ rspec-support (~> 3.13.0)
37
+ rspec-support (3.13.0)
38
+ rubocop (1.87.0)
35
39
  json (~> 2.3)
36
- parallel (~> 1.10)
37
- parser (>= 3.1.2.1)
40
+ language_server-protocol (~> 3.17.0.2)
41
+ lint_roller (~> 1.1.0)
42
+ parallel (>= 1.10)
43
+ parser (>= 3.3.0.2)
38
44
  rainbow (>= 2.2.2, < 4.0)
39
- regexp_parser (>= 1.8, < 3.0)
40
- rexml (>= 3.2.5, < 4.0)
41
- rubocop-ast (>= 1.20.1, < 2.0)
45
+ regexp_parser (>= 2.9.3, < 3.0)
46
+ rubocop-ast (>= 1.49.0, < 2.0)
42
47
  ruby-progressbar (~> 1.7)
43
- unicode-display_width (>= 1.4.0, < 3.0)
44
- rubocop-ast (1.23.0)
45
- parser (>= 3.1.1.0)
46
- rubocop-performance (1.14.3)
47
- rubocop (>= 1.7.0, < 2.0)
48
- rubocop-ast (>= 0.4.0)
49
- ruby-progressbar (1.11.0)
50
- standard (1.16.1)
51
- rubocop (= 1.35.1)
52
- rubocop-performance (= 1.14.3)
48
+ unicode-display_width (>= 2.4.0, < 4.0)
49
+ rubocop-ast (1.49.1)
50
+ parser (>= 3.3.7.2)
51
+ prism (~> 1.7)
52
+ rubocop-performance (1.26.1)
53
+ lint_roller (~> 1.1)
54
+ rubocop (>= 1.75.0, < 2.0)
55
+ rubocop-ast (>= 1.47.1, < 2.0)
56
+ ruby-progressbar (1.13.0)
57
+ standard (1.55.0)
58
+ language_server-protocol (~> 3.17.0.2)
59
+ lint_roller (~> 1.0)
60
+ rubocop (~> 1.87.0)
61
+ standard-custom (~> 1.0.0)
62
+ standard-performance (~> 1.8)
63
+ standard-custom (1.0.2)
64
+ lint_roller (~> 1.0)
65
+ rubocop (~> 1.50)
66
+ standard-performance (1.9.0)
67
+ lint_roller (~> 1.1)
68
+ rubocop-performance (~> 1.26.0)
53
69
  tty-config (0.6.0)
54
70
  tty-cursor (0.7.1)
55
71
  tty-spinner (0.9.3)
56
72
  tty-cursor (~> 0.7)
57
- unicode-display_width (2.3.0)
73
+ unicode-display_width (3.2.0)
74
+ unicode-emoji (~> 4.1)
75
+ unicode-emoji (4.2.0)
58
76
 
59
77
  PLATFORMS
60
78
  arm64-darwin-20
61
79
  arm64-darwin-21
80
+ arm64-darwin-23
62
81
  x86_64-linux
63
82
 
64
83
  DEPENDENCIES
65
- rake (~> 13.0)
84
+ rake (~> 13.4)
66
85
  remote_database_importer!
67
- rspec (~> 3.0)
68
- standard (~> 1.3)
86
+ rspec (~> 3.13)
87
+ standard (~> 1.55)
69
88
 
70
89
  BUNDLED WITH
71
90
  2.3.7
@@ -4,10 +4,10 @@ class Colorize
4
4
  end
5
5
 
6
6
  def self.green(text)
7
- "\e[32m#{text}\e[0m"
7
+ "\e[32m#{text}\e[0m"
8
8
  end
9
9
 
10
10
  def self.blue(text)
11
11
  "\e[94m#{text}\e[0m"
12
12
  end
13
- end
13
+ end
@@ -4,10 +4,10 @@ module RemoteDatabaseImporter
4
4
  require_relative "colorize"
5
5
 
6
6
  attr_accessor :config
7
-
7
+
8
8
  def initialize
9
9
  @config = TTY::Config.new
10
-
10
+
11
11
  config.filename = "remote_database_importer"
12
12
  config.extname = ".yml"
13
13
  config.append_path Dir.pwd
@@ -63,6 +63,9 @@ module RemoteDatabaseImporter
63
63
  else
64
64
  postgres_port = ask("Enter the database port for the pg_dump command:", default: "5432")
65
65
  end
66
+
67
+ puts Colorize.green("Define custom commands that run after successful import:")
68
+ custom_commands = ask("Enter semicolon separated commands that should run after importing the DB:", default: "rake db:migrate; echo 'All Done'")
66
69
  puts
67
70
 
68
71
  env_config = {
@@ -77,7 +80,8 @@ module RemoteDatabaseImporter
77
80
  "postgres_port" => postgres_port,
78
81
  "ssh_user" => ssh_user,
79
82
  "ssh_port" => ssh_port
80
- }
83
+ },
84
+ "custom_commands" => custom_commands
81
85
  }
82
86
  }
83
87
  config.append(env_config, to: :environments)
@@ -90,11 +94,6 @@ module RemoteDatabaseImporter
90
94
  end
91
95
  end
92
96
 
93
- puts Colorize.green("Define custom commands that run after successful import:")
94
- custom_commands = ask("Enter semicolon separated commands that should run after importing the DB:", default: "rake db:migrate; echo 'All Done'")
95
- puts
96
-
97
- config.set(:custom_commands, value: custom_commands)
98
97
  config.write
99
98
  end
100
99
  end
@@ -68,31 +68,31 @@ module RemoteDatabaseImporter
68
68
 
69
69
  # terminate local db sessions, otherwise the db can't be dropped
70
70
  def terminate_current_db_sessions
71
- "psql -d #{config.fetch("local_db_name")} -c 'SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datname = current_database() AND pid <> pg_backend_pid();' > #{LOG_FILE}"
71
+ "psql -d #{config.fetch("local_db_name")} -c 'SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datname = current_database() AND pid <> pg_backend_pid();' >> #{LOG_FILE} 2>&1"
72
72
  end
73
73
 
74
74
  def dump_remote_db
75
- host = current_environment["connection"]["host"]
76
- db_name = current_environment["database"]["name"]
77
- db_user = current_environment["database"]["user"]
78
- dump_type = current_environment["connection"]["dump_type"]
79
- ssh_user = current_environment["connection"]["ssh_user"]
80
- ssh_port = current_environment["connection"]["ssh_port"]
75
+ host = current_environment["connection"]["host"]
76
+ db_name = current_environment["database"]["name"]
77
+ db_user = current_environment["database"]["user"]
78
+ dump_type = current_environment["connection"]["dump_type"]
79
+ ssh_user = current_environment["connection"]["ssh_user"]
80
+ ssh_port = current_environment["connection"]["ssh_port"]
81
81
  postgres_port = current_environment["connection"]["postgres_port"]
82
82
 
83
83
  if dump_type == "ssh_tunnel"
84
- "ssh #{ssh_user}@#{host} -p #{ssh_port} 'pg_dump -Fc -U #{db_user} -d #{db_name} -h localhost -C' > #{db_dump_location}"
84
+ "ssh #{ssh_user}@#{host} -p #{ssh_port} 'pg_dump -Fc -U #{db_user} -d #{db_name} -h localhost -C' > #{db_dump_location} 2>> #{LOG_FILE}"
85
85
  else
86
- "pg_dump -Fc 'host=#{host} dbname=#{db_name} user=#{db_user} port=#{postgres_port}' > #{db_dump_location}"
86
+ "pg_dump -Fc 'host=#{host} dbname=#{db_name} user=#{db_user} port=#{postgres_port}' > #{db_dump_location} 2>> #{LOG_FILE}"
87
87
  end
88
88
  end
89
89
 
90
90
  def drop_and_create_local_db
91
- "rails db:environment:set RAILS_ENV=development; rake db:drop db:create > #{LOG_FILE}"
91
+ "rails db:environment:set RAILS_ENV=development >> #{LOG_FILE} 2>&1; rake db:drop db:create >> #{LOG_FILE} 2>&1"
92
92
  end
93
93
 
94
94
  def restore_db
95
- "pg_restore --jobs 8 --no-privileges --no-owner --dbname #{config.fetch("local_db_name")} #{db_dump_location}"
95
+ "pg_restore --jobs 8 --no-privileges --no-owner --dbname #{config.fetch("local_db_name")} #{db_dump_location} >> #{LOG_FILE} 2>&1"
96
96
  end
97
97
 
98
98
  def remove_logfile
@@ -104,7 +104,7 @@ module RemoteDatabaseImporter
104
104
  end
105
105
 
106
106
  def custom_commands
107
- config.fetch("custom_commands")
107
+ current_environment["custom_commands"]
108
108
  end
109
109
 
110
110
  def db_dump_location
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RemoteDatabaseImporter
4
- VERSION = "0.1.4"
4
+ VERSION = "0.1.6"
5
5
  end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/remote_database_importer/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "remote_database_importer"
7
+ spec.version = RemoteDatabaseImporter::VERSION
8
+ spec.authors = ["Leon Vogt"]
9
+ spec.email = ["nonick@nonick.ch"]
10
+
11
+ spec.summary = "Dump remote databases and import it locally"
12
+ spec.description = "Dump remote databases and import it locally. At the moment only Postgres databases are supported"
13
+ spec.homepage = "https://github.com/leon-vogt/remote_database_importer"
14
+ spec.license = "MIT"
15
+ spec.required_ruby_version = ">= 2.6.0"
16
+
17
+ spec.metadata["homepage_uri"] = spec.homepage
18
+ spec.metadata["source_code_uri"] = spec.homepage
19
+ spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/main/CHANGELOG.md"
20
+ spec.metadata["rubygems_mfa_required"] = "true"
21
+
22
+ # Specify which files should be added to the gem when it is released.
23
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
24
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
25
+ `git ls-files -z`.split("\x0").reject do |f|
26
+ (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
27
+ end
28
+ end
29
+ spec.bindir = "bin"
30
+ spec.require_paths = ["lib"]
31
+
32
+ spec.add_dependency "tty-config", "~> 0.6"
33
+ spec.add_dependency "tty-spinner", "~> 0.9.3"
34
+ end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: remote_database_importer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leon Vogt
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2022-11-20 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: tty-config
@@ -30,14 +29,14 @@ dependencies:
30
29
  requirements:
31
30
  - - "~>"
32
31
  - !ruby/object:Gem::Version
33
- version: '0.9'
32
+ version: 0.9.3
34
33
  type: :runtime
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - "~>"
39
38
  - !ruby/object:Gem::Version
40
- version: '0.9'
39
+ version: 0.9.3
41
40
  description: Dump remote databases and import it locally. At the moment only Postgres
42
41
  databases are supported
43
42
  email:
@@ -63,6 +62,7 @@ files:
63
62
  - lib/tasks/remote_database_importer.rake
64
63
  - readme_assets/config_sample.png
65
64
  - readme_assets/import-job.gif
65
+ - remote_database_importer.gemspec
66
66
  - sig/remote_database_importer.rbs
67
67
  homepage: https://github.com/leon-vogt/remote_database_importer
68
68
  licenses:
@@ -71,7 +71,7 @@ metadata:
71
71
  homepage_uri: https://github.com/leon-vogt/remote_database_importer
72
72
  source_code_uri: https://github.com/leon-vogt/remote_database_importer
73
73
  changelog_uri: https://github.com/leon-vogt/remote_database_importer/blob/main/CHANGELOG.md
74
- post_install_message:
74
+ rubygems_mfa_required: 'true'
75
75
  rdoc_options: []
76
76
  require_paths:
77
77
  - lib
@@ -86,8 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
86
86
  - !ruby/object:Gem::Version
87
87
  version: '0'
88
88
  requirements: []
89
- rubygems_version: 3.3.7
90
- signing_key:
89
+ rubygems_version: 4.0.14
91
90
  specification_version: 4
92
91
  summary: Dump remote databases and import it locally
93
92
  test_files: []