parity 0.0.1 → 0.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 +8 -8
- data/bin/development +5 -0
- data/lib/parity.rb +2 -3
- data/lib/parity/backup.rb +3 -3
- data/lib/parity/development.rb +17 -0
- data/lib/parity/environment.rb +32 -17
- data/lib/parity/production.rb +2 -0
- data/lib/parity/staging.rb +9 -0
- metadata +6 -5
- data/bin/restore-backup +0 -24
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZWQ5MDcxMzdkOTY3ZDE1OGQzZmJiYzlmMjJlN2U4NTQ4NzBiNWM1Ng==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NWI3ZjUyZmNlOTY3Yzc1NjQzNDMwMTc4NzcxMzE4ZGYzMDg1NmIyNA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YmZhM2U4ZDc0ZDQwM2MzOTlkNTFjZWRjZmJlN2FlOWQ4YmE5NzIyODFjYjBh
|
10
|
+
MTJhYzEwNTJmMWI2YmJiMWNkYmZhOGY1OGFkYzNmYTQ5NGY1ZTZkODIwMjVh
|
11
|
+
YjAyMTdhODgyMmRkM2E4ODU0MDMyYjAwMjEyOTRlNmNkODhkOWQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MTlmMjYyNDg3NzEwY2FjODE1ZTA3MTE3OTdlZTIxZDU5OThmODUxZjUyMDhh
|
14
|
+
OWIwZjVkM2M4NmRjMmVlNDMwNGIyODljMzE0MTI4MmRhYTM0YTA5MjBiOGM1
|
15
|
+
Y2JlMDg0NmNhZjEzODAxM2NkNTlmNmI4Y2Q4NTM3ZjA1ZDRjMDQ=
|
data/bin/development
ADDED
data/lib/parity.rb
CHANGED
data/lib/parity/backup.rb
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'parity/backup'
|
2
|
+
require 'parity/environment'
|
3
|
+
|
4
|
+
module Parity
|
5
|
+
class Development < Environment
|
6
|
+
def initialize(subcommands)
|
7
|
+
@environment = 'development'
|
8
|
+
super(subcommands)
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def restore
|
14
|
+
Backup.new(arguments.first, 'development').restore
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/parity/environment.rb
CHANGED
@@ -1,25 +1,13 @@
|
|
1
1
|
module Parity
|
2
2
|
class Environment
|
3
3
|
def initialize(subcommands)
|
4
|
-
@subcommand = subcommands
|
5
|
-
@
|
4
|
+
@subcommand = subcommands[0]
|
5
|
+
@arguments = subcommands[1..-1]
|
6
6
|
end
|
7
7
|
|
8
8
|
def run
|
9
|
-
|
10
|
-
|
11
|
-
system "heroku pgbackups:capture --expire --remote #{environment}"
|
12
|
-
when 'console'
|
13
|
-
system "heroku run console --remote #{environment}"
|
14
|
-
when 'log2viz'
|
15
|
-
system "open https://log2viz.herokuapp.com/app/#{heroku_app_name}"
|
16
|
-
when 'migrate'
|
17
|
-
system %{
|
18
|
-
heroku run rake db:migrate --remote #{environment} &&
|
19
|
-
heroku restart --remote #{environment}
|
20
|
-
}
|
21
|
-
when 'tail'
|
22
|
-
system "heroku logs --tail --remote #{environment}"
|
9
|
+
if self.class.private_method_defined?(subcommand)
|
10
|
+
send(subcommand)
|
23
11
|
else
|
24
12
|
system "heroku #{pass_through} --remote #{environment}"
|
25
13
|
end
|
@@ -27,7 +15,30 @@ module Parity
|
|
27
15
|
|
28
16
|
private
|
29
17
|
|
30
|
-
attr_reader :environment, :
|
18
|
+
attr_reader :environment, :subcommand, :arguments
|
19
|
+
|
20
|
+
def backup
|
21
|
+
system "heroku pgbackups:capture --expire --remote #{environment}"
|
22
|
+
end
|
23
|
+
|
24
|
+
def console
|
25
|
+
system "heroku run console --remote #{environment}"
|
26
|
+
end
|
27
|
+
|
28
|
+
def log2viz
|
29
|
+
system "open https://log2viz.herokuapp.com/app/#{heroku_app_name}"
|
30
|
+
end
|
31
|
+
|
32
|
+
def migrate
|
33
|
+
system %{
|
34
|
+
heroku run rake db:migrate --remote #{environment} &&
|
35
|
+
heroku restart --remote #{environment}
|
36
|
+
}
|
37
|
+
end
|
38
|
+
|
39
|
+
def tail
|
40
|
+
system "heroku logs --tail --remote #{environment}"
|
41
|
+
end
|
31
42
|
|
32
43
|
def heroku_app_name
|
33
44
|
[app_name, environment].join('-')
|
@@ -36,5 +47,9 @@ module Parity
|
|
36
47
|
def app_name
|
37
48
|
Dir.pwd.split('/').last
|
38
49
|
end
|
50
|
+
|
51
|
+
def pass_through
|
52
|
+
[subcommand, arguments].join(' ')
|
53
|
+
end
|
39
54
|
end
|
40
55
|
end
|
data/lib/parity/production.rb
CHANGED
data/lib/parity/staging.rb
CHANGED
@@ -1,8 +1,17 @@
|
|
1
|
+
require 'parity/backup'
|
2
|
+
require 'parity/environment'
|
3
|
+
|
1
4
|
module Parity
|
2
5
|
class Staging < Environment
|
3
6
|
def initialize(subcommands)
|
4
7
|
@environment = 'staging'
|
5
8
|
super(subcommands)
|
6
9
|
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def restore
|
14
|
+
Backup.new(arguments.last, 'staging').restore
|
15
|
+
end
|
7
16
|
end
|
8
17
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Croak
|
@@ -17,20 +17,21 @@ description: ! " Devevelopment/staging/production parity is intended to decre
|
|
17
17
|
email:
|
18
18
|
- dan@thoughtbot.com
|
19
19
|
executables:
|
20
|
-
-
|
21
|
-
- restore-backup
|
20
|
+
- development
|
22
21
|
- staging
|
22
|
+
- production
|
23
23
|
extensions: []
|
24
24
|
extra_rdoc_files: []
|
25
25
|
files:
|
26
26
|
- lib/parity.rb
|
27
27
|
- lib/parity/backup.rb
|
28
|
+
- lib/parity/development.rb
|
28
29
|
- lib/parity/environment.rb
|
29
30
|
- lib/parity/production.rb
|
30
31
|
- lib/parity/staging.rb
|
31
|
-
- bin/
|
32
|
-
- bin/restore-backup
|
32
|
+
- bin/development
|
33
33
|
- bin/staging
|
34
|
+
- bin/production
|
34
35
|
homepage: https://github.com/croaky/parity
|
35
36
|
licenses:
|
36
37
|
- MIT
|
data/bin/restore-backup
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby
|
2
|
-
|
3
|
-
require 'optparse'
|
4
|
-
require File.join(File.dirname(__FILE__), '..', 'lib', 'parity')
|
5
|
-
|
6
|
-
options = {}
|
7
|
-
|
8
|
-
optparse = OptionParser.new do |opts|
|
9
|
-
opts.on '-f', '--from DATABASE_ENV', 'The source database (such as production or staging)' do |from|
|
10
|
-
options[:from] = from
|
11
|
-
end
|
12
|
-
|
13
|
-
opts.on '-t', '--to DATABASE_ENV', 'The target database (such as staging or development)' do |to|
|
14
|
-
options[:to] = to
|
15
|
-
end
|
16
|
-
|
17
|
-
opts.on '-h', '--help', 'Restore backup from one environment into another.' do
|
18
|
-
puts opts
|
19
|
-
exit
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
optparse.parse!
|
24
|
-
Parity::Backup.new(options).restore
|