mina-data_sync 0.0.11 → 0.1.0

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
  SHA1:
3
- metadata.gz: 60554b56af0d16d78d4dcbc945ba88a0fb6e8337
4
- data.tar.gz: 14934e0d27f65e374767886933835d9afcb07204
3
+ metadata.gz: 3d58104d7068180adc905c2bd922ba4eee9666da
4
+ data.tar.gz: 3805c517428a3161f12fef18c5c2f2a5cdf4946a
5
5
  SHA512:
6
- metadata.gz: 948f5e338c04af9b10d4efd00b4196aaa497bd6df193153acbfdd6adb1d9897f7c6462a1b17bc5ace878b4714996a19e1eefb9a0734d027b819326589c3e6706
7
- data.tar.gz: f0bcf4832442ef63719d5e3d880b7c7a13d8739d9b03196646cc096b342b7e8d1a19f10b157a4dd963686dc56ecce41c88fbb0a710d4c8897788514a4a0af2cc
6
+ metadata.gz: df60b6a711f9d35d993324a41036109390db09a4da859eebcfe1ec45c481b4fdd78191edd440f4fb7d838158392235ea92cff29a1f2bd6dc551cae053e88ab4a
7
+ data.tar.gz: 3f95e89310c6d1d7013e0243a3f97ec624af08922cd2793f3b57c48c7570031baf5884e0ec3cf20576fdda7f9a8133b6b9dfbe2891ab5fa126e16d45d1c65114
data/.gitignore CHANGED
@@ -12,3 +12,4 @@
12
12
  *.o
13
13
  *.a
14
14
  mkmf.log
15
+ config/
data/config/database.yml CHANGED
@@ -11,7 +11,7 @@
11
11
  development:
12
12
  adapter: mysql2
13
13
  encoding: utf8
14
- database: psylog_development
14
+ database: test
15
15
  pool: 5
16
16
  username: root
17
17
  password:
@@ -43,4 +43,4 @@ staging:
43
43
  database: psylog_staging_infinum_co
44
44
  pool: 5
45
45
  username: psylog_s
46
- password: uRfbBD1S
46
+ password: uRfbBD1S
data/config/deploy.rb CHANGED
@@ -4,174 +4,13 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'mina/bundler'
5
5
  require 'mina/rails'
6
6
  require 'mina/git'
7
- require 'mina/whenever' # uncomment if using whenever
8
7
  require 'mina/data_sync'
9
8
 
9
+ set :repository, 'git@bitbucket.org:infinum_hr/rails-truck.git'
10
+ set :user, 'deploy'
11
+ set :domain, 'truck-ec2.infinum.co'
12
+ set :deploy_to, '/home/deploy/www/t/truck-staging.infinum.co'
13
+ set :rails_env, 'staging'
14
+ set :branch, 'master'
15
+ set :port, 22
10
16
 
11
- # Setup project
12
- # - mina production setup
13
- # Deploy project
14
- # - mina production deploy
15
- # Tail log from project
16
- # - mina prodution log
17
- # Pull data from production
18
- # - mina production data:pull
19
-
20
- set :repository, 'git@bitbucket.org:infinum_hr/web_psylog.git'
21
- set :user, 'legacy'
22
- set :port, 22219
23
-
24
- task :production do
25
- set :domain, 'psylog.eu'
26
- set :deploy_to, '/home/legacy/www/p/psylog.eu'
27
- set :rails_env, 'production'
28
- set :branch, 'master'
29
- end
30
-
31
- task :staging do
32
- set :domain, 'psylog-staging.infinum.co'
33
- set :deploy_to, '/home/legacy/www/p/psylog-staging.infinum.co'
34
- set :rails_env, 'staging'
35
- set :branch, 'master'
36
- end
37
-
38
-
39
- ##################################################################################
40
- ########################## DO NOT EDIT THE CODE BELOW ############################
41
- ##################################################################################
42
-
43
- set :shared_paths, ['log', 'pids']
44
-
45
- task :deploy => :stages do
46
- deploy do
47
- to :default do
48
- invoke :'git:clone'
49
- invoke :'deploy:link_shared_paths'
50
- invoke :'bundle:install'
51
- invoke :'rails:db_migrate'
52
- invoke :'rails:assets_precompile'
53
- invoke :'deploy:cleanup'
54
- end
55
-
56
- to :launch do
57
- # Capistrano to Mina Fix, symlink system to shared
58
- queue! %[echo "-----> Symlink system to shared"]
59
- queue! %[ln -nFs #{deploy_to}/shared/system #{deploy_to}/#{current_path}/public/system]
60
-
61
- queue %[echo "-----> Restarting jobs"]
62
- queue "RAILS_ENV=#{rails_env} #{deploy_to}/#{current_path}/bin/delayed_job restart --pid-dir=pids"
63
-
64
- invoke :restart_application
65
- end
66
- end
67
- end
68
-
69
- # First ensure that the stage is selected
70
- task :stages do
71
- unless domain
72
- print_error "A server needs to be specified. e.g. production/staging"
73
- exit
74
- end
75
- end
76
-
77
- # Just overwrote to execute stages first
78
- task :setup => :stages do
79
- queue! %[mkdir -p "#{deploy_to}/shared/log"]
80
- queue! %[chmod g+rx,u+rwx "#{deploy_to}/shared/log"]
81
-
82
- queue! %[mkdir -p "#{deploy_to}/shared/system"]
83
- queue! %[chmod g+rx,u+rwx "#{deploy_to}/shared/system"]
84
- end
85
-
86
- # Import dummy data
87
- task :import => :stages do
88
- queue "bundle exec rake import:effects"
89
- queue "bundle exec rake import:lifestyles"
90
- queue "bundle exec rake import:medications"
91
- queue "bundle exec rake import:users"
92
- queue "bundle exec rake import:friendships"
93
- end
94
-
95
- task :import_effects => :stages do
96
- queue "bundle exec rake import:effects"
97
- end
98
-
99
- task :import_lifestyles => :stages do
100
- queue "bundle exec rake import:lifestyles"
101
- end
102
-
103
- task :import_medications => :stages do
104
- queue "bundle exec rake import:medications"
105
- end
106
-
107
- task :import_users => :stages do
108
- queue "bundle exec rake import:users"
109
- end
110
-
111
- task :import_friendships => :stages do
112
- queue "bundle exec rake import:friendships"
113
- end
114
-
115
- # Tail log from server
116
- task :log => :stages do
117
- queue "tail -f #{deploy_to}/#{current_path}/log/#{rails_env}.log"
118
- end
119
-
120
- # Restart application after deployment
121
- task :restart_application do
122
- queue %[echo "-----> Restarting application"]
123
- queue "mkdir -p #{deploy_to}/#{current_path}/tmp"
124
- queue "touch #{deploy_to}/#{current_path}/tmp/restart.txt"
125
- end
126
-
127
- # Ping application
128
- task :ping_application do
129
- queue %[echo "-----> Ping domain"]
130
- queue %[curl -s #{domain} > /dev/null]
131
- end
132
-
133
- # Stop delayed job
134
- task :stop_delayed_job do
135
- queue! %[echo "-----> Stop delayed job"]
136
- queue! %[cd #{deploy_to}/#{current_path} ; RAILS_ENV=#{rails_env} bin/delayed_job stop]
137
- end
138
-
139
- # Start delayed job
140
- task :start_delayed_job do
141
- queue! %[echo "-----> Start delayed job"]
142
- queue! %[cd #{deploy_to}/#{current_path} ; mkdir -p tmp/pids ; RAILS_ENV=#{rails_env} bin/delayed_job start]
143
- end
144
-
145
- # Restart delayed job
146
- task :restart_delayed_job do
147
- queue! %[echo "-----> Restart delayed job"]
148
- queue! %[cd #{deploy_to}/#{current_path} ; RAILS_ENV=#{rails_env} bin/delayed_job restart]
149
- end
150
-
151
- # Sync database
152
- RYAML = <<-BASH
153
- function ryaml {
154
- ruby -ryaml -e 'puts ARGV[1..-1].inject(YAML.load(File.read(ARGV[0]))) {|acc, key| acc[key] }' "$@"
155
- };
156
- BASH
157
-
158
- namespace :data do
159
- task :pull => :stages do
160
- isolate do
161
- queue RYAML
162
- queue "HOST=$(ryaml #{deploy_to}/#{current_path}/config/database.yml #{rails_env} host)"
163
- queue "DATABASE=$(ryaml #{deploy_to}/#{current_path}/config/database.yml #{rails_env} database)"
164
- queue "USERNAME=$(ryaml #{deploy_to}/#{current_path}/config/database.yml #{rails_env} username)"
165
- queue "PASSWORD=$(ryaml #{deploy_to}/#{current_path}/config/database.yml #{rails_env} password)"
166
- queue "mysqldump $DATABASE --host=$HOST --user=$USERNAME --password=$PASSWORD > #{deploy_to}/dump.sql"
167
- queue "gzip -f #{deploy_to}/dump.sql"
168
-
169
- mina_cleanup!
170
- end
171
-
172
- %x[scp #{user}@#{domain}:#{deploy_to}/dump.sql.gz .]
173
- %x[gunzip -f dump.sql.gz]
174
- %x[#{RYAML} mysql --verbose --user=$(ryaml config/database.yml development username) --password=$(ryaml config/database.yml development password) $(ryaml config/database.yml development database) < dump.sql]
175
- %x[rm dump.sql]
176
- end
177
- end
@@ -1,34 +1,3 @@
1
- ARGUMENTS = <<-RUBY
2
- dc = YAML.load(ERB.new(File.read(ARGV[0])).result)[ARGV[1]]
3
- adapter = dc["adapter"]
4
- database = dc["database"]
5
- host = dc["host"]
6
- username = dc["username"]
7
- password = dc["password"]
8
- port = dc["port"]
9
- arguments = ""
10
- case adapter.to_s
11
- when "postgresql"
12
- arguments += " -d " + database if database
13
- arguments += " -h " + host if host
14
- arguments += " -U " + username if username
15
- arguments += " -p " + port.to_s if port
16
- when "mysql2"
17
- arguments += " " + database if database
18
- arguments += " -h " + host if host
19
- arguments += " -u " + username if username
20
- arguments += " --password=" + password if password
21
- arguments += " -P " + port.to_s if port
22
- end
23
- puts arguments
24
- RUBY
25
-
26
- CONF = <<-BASH
27
- function conf {
28
- ruby -ryaml -rerb -e '#{ARGUMENTS}' "$@"
29
- };
30
- BASH
31
-
32
1
  def read_conf(path, rails_env)
33
2
  @conf ||= YAML.load(ERB.new(File.read(path)).result)[rails_env]
34
3
  end
@@ -8,10 +8,9 @@ namespace :data_sync do
8
8
 
9
9
  queue "echo '-----> Dumping database'"
10
10
  queue "cd #{deploy_to}/#{current_path}"
11
- queue "#{CONF}"
12
- queue "ARGS=$(conf #{database_path} #{rails_env})"
11
+ queue "ARGS=$(#{rake} mina_data_sync:config)"
13
12
  queue "mkdir -p #{remote_backup_path}"
14
- queue! "echo $ARGS"
13
+ queue! 'echo $ARGS'
15
14
  queue! "#{dump} $ARGS #{options} > #{remote_backup_path}/#{backup_file}"
16
15
 
17
16
  to :after_hook do
@@ -20,8 +19,8 @@ namespace :data_sync do
20
19
  queue! "rsync --progress -e 'ssh -p #{port}' #{user}@#{domain}:#{deploy_to}/#{current_path}/#{remote_backup_path}/#{backup_file} #{local_backup_path}/#{backup_file}"
21
20
  queue "echo '-----> Restoring database'"
22
21
  if restore_data == 'true'
23
- queue "#{CONF}"
24
- queue "ARGS=$(conf #{database_path} development)"
22
+ queue "ARGS=$(#{rake} mina_data_sync:config)"
23
+ queue! 'echo $ARGS'
25
24
  queue! "#{restore} $ARGS < #{local_backup_path}/#{backup_file}"
26
25
  end
27
26
  end
@@ -29,10 +28,9 @@ namespace :data_sync do
29
28
 
30
29
  task push: :setup_sync do
31
30
  set :term_mode, :pretty
32
-
31
+
33
32
  to :before_hook do
34
33
  queue "echo '-----> Dumping database'"
35
- queue "#{CONF}"
36
34
  queue "ARGS=$(conf #{database_path} development)"
37
35
  queue! "#{dump} $ARGS #{options} > #{local_backup_path}/#{backup_file}"
38
36
  queue "echo '-----> Copying backup'"
@@ -42,7 +40,6 @@ namespace :data_sync do
42
40
  if restore_data == 'true'
43
41
  queue "echo '-----> Restoring database'"
44
42
  queue "cd #{deploy_to}/#{current_path}"
45
- queue "#{CONF}"
46
43
  queue "ARGS=$(conf #{database_path} #{rails_env})"
47
44
  queue! "#{restore} $ARGS < #{deploy_to}/#{current_path}/#{remote_backup_path}/#{backup_file}"
48
45
  end
@@ -1,5 +1,5 @@
1
1
  module Mina
2
2
  module DataSync
3
- VERSION = "0.0.11"
3
+ VERSION = "0.1.0"
4
4
  end
5
5
  end
@@ -1,12 +1,19 @@
1
1
  require 'yaml'
2
2
  require 'erb'
3
- require "mina/data_sync/defaults"
4
- require "mina/data_sync/helpers"
5
- require "mina/data_sync/version"
6
- require "mina/data_sync/tasks"
3
+ require 'mina/data_sync/defaults'
4
+ require 'mina/data_sync/helpers'
5
+ require 'mina/data_sync/version'
6
+ require 'mina/data_sync/tasks'
7
7
 
8
8
  module Mina
9
9
  module DataSync
10
- # Your code goes here...
10
+ if defined? Rails::Railtie
11
+ require 'rails'
12
+ class Railtie < Rails::Railtie
13
+ rake_tasks do
14
+ load 'tasks/config.rake'
15
+ end
16
+ end
17
+ end
11
18
  end
12
19
  end
@@ -0,0 +1,26 @@
1
+ namespace :mina_data_sync do
2
+ task config: :environment do
3
+ dc = ActiveRecord::Base.configurations[Rails.env].to_yaml
4
+ adapter = dc['adapter']
5
+ database = dc['database']
6
+ host = dc['host']
7
+ username = dc['username']
8
+ password = dc['password']
9
+ port = dc['port']
10
+ arguments = ''
11
+ case adapter.to_s
12
+ when 'postgresql'
13
+ arguments += ' -d ' + database if database
14
+ arguments += ' -h ' + host if host
15
+ arguments += ' -U ' + username if username
16
+ arguments += ' -p ' + port.to_s if port
17
+ when 'mysql2'
18
+ arguments += ' ' + database if database
19
+ arguments += ' -h ' + host if host
20
+ arguments += ' -u ' + username if username
21
+ arguments += ' --password=' + password if password
22
+ arguments += ' -P ' + port.to_s if port
23
+ end
24
+ puts arguments
25
+ end
26
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mina-data_sync
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stjepan Hadjic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-29 00:00:00.000000000 Z
11
+ date: 2016-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,13 +80,12 @@ files:
80
80
  - Rakefile
81
81
  - config/database.yml
82
82
  - config/deploy.rb
83
- - config_pg/database.yml
84
- - config_pg/deploy.rb
85
83
  - lib/mina/data_sync.rb
86
84
  - lib/mina/data_sync/defaults.rb
87
85
  - lib/mina/data_sync/helpers.rb
88
86
  - lib/mina/data_sync/tasks.rb
89
87
  - lib/mina/data_sync/version.rb
88
+ - lib/mina/tasks/config.rake
90
89
  - mina-data_sync.gemspec
91
90
  homepage: https://github.com/d4be4st/mina-data_sync
92
91
  licenses:
@@ -1,39 +0,0 @@
1
- default: &default
2
- adapter: postgresql
3
- encoding: utf8
4
- pool: 5
5
- username: postgres
6
- password:
7
- host: localhost
8
-
9
- rakovac: &rakovac
10
- <<: *default
11
- username: <%= ENV['PGSQL_USER'] %>
12
- password: <%= ENV['PGSQL_PASSWORD'] %>
13
- host: <%= ENV['PGSQL_HOST'] %>
14
- port: <%= ENV['PGSQL_PORT'] %>
15
-
16
- # development:
17
- # adapter: mysql2
18
- # encoding: utf8
19
- # database: miramo_club_development
20
- # pool: 5
21
- # username: root
22
- # password:
23
- # host: localhost
24
-
25
- development: &development
26
- <<: *default
27
- database: miramo_club_development
28
-
29
- test:
30
- <<: *default
31
- database: miramo_club_test
32
-
33
- production: &production
34
- <<: *rakovac
35
- database: miramo_infinum_co
36
-
37
- staging:
38
- <<: *rakovac
39
- database: miramo_staging_infinum_co
data/config_pg/deploy.rb DELETED
@@ -1,125 +0,0 @@
1
- lib = File.expand_path('../../lib', __FILE__)
2
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
-
4
- require 'mina/bundler'
5
- require 'mina/rails'
6
- require 'mina/git'
7
- require 'pry'
8
- require 'mina/data_sync'
9
- # require 'mina/whenever' # uncomment if using whenever
10
-
11
- # Setup project
12
- # - mina production setup
13
- # Deploy project
14
- # - mina production deploy
15
- # Tail log from project
16
- # - mina prodution log
17
- # Pull data from production
18
- # - mina production data:pull
19
-
20
- set :repository, 'git@bitbucket.org:infinum_hr/web_miramoclub.git'
21
- set :local_backup_path, '/Users/stef/dev/databases/pg'
22
- set :port, 22220
23
- set :user, 'staging'
24
- set :domain, 'miramo.infinum.co'
25
-
26
- task :production do
27
- set :deploy_to, '/home/staging/www/m/miramo.infinum.co'
28
- set :rails_env, 'production'
29
- set :branch, 'master'
30
- set :bundle_withouts, 'development:test:staging'
31
- end
32
-
33
- # If you have
34
- task :staging do
35
- set :domain, 'miramo-club.infinum.co'
36
- set :deploy_to, '/home/staging/www/m/miramo-staging.infinum.co'
37
- set :rails_env, 'staging'
38
- set :branch, 'develop'
39
- set :bundle_withouts, 'development:test:production'
40
- end
41
-
42
- task :development do
43
- set :rails_env, 'development'
44
- end
45
- ##################################################################################
46
- ########################## DO NOT EDIT THE CODE BELOW ############################
47
- ##################################################################################
48
-
49
- # While linking asssets it will only precompile that assets that was changed, not all of them
50
- set :shared_paths, ['log']
51
-
52
- task :deploy => :stages do
53
- deploy do
54
- invoke :'git:clone'
55
- invoke :'deploy:link_shared_paths'
56
- invoke :'bundle:install'
57
- invoke :'rails:db_migrate'
58
- invoke :'rails:assets_precompile'
59
- invoke :'deploy:cleanup'
60
-
61
- to :launch do
62
- # Capistrano to Mina Fix, symlink system to shared
63
- queue! %[echo "-----> Symlink system to shared"]
64
- queue! %[ln -nFs #{deploy_to}/shared/system #{deploy_to}/#{current_path}/public/system]
65
-
66
- #invoke :'whenever:update' # uncomment if using whenever (why here? read https://gist.github.com/gabskoro/abfc245a55a9d155f8de)
67
- invoke :restart_application
68
- end
69
- end
70
- end
71
-
72
- # First ensure that the stage is selected
73
- task :stages do
74
- unless domain
75
- print_error "A server needs to be specified. e.g. production/staging"
76
- exit
77
- end
78
- end
79
-
80
- # Just overwrote to execute stages first
81
- task :setup => :stages do
82
- queue! %[mkdir -p "#{deploy_to}/shared/log"]
83
- queue! %[chmod g+rx,u+rwx "#{deploy_to}/shared/log"]
84
- end
85
-
86
- # Tail log from server
87
- task :log => :stages do
88
- queue "tail -f #{deploy_to}/#{current_path}/log/#{rails_env}.log"
89
- end
90
-
91
- # Restart application after deployment
92
- task :restart_application do
93
- queue %[echo "-----> Restarting application"]
94
- queue "mkdir -p #{deploy_to}/#{current_path}/tmp"
95
- queue "touch #{deploy_to}/#{current_path}/tmp/restart.txt"
96
- end
97
-
98
- namespace :data do
99
- set :pretty_print, true
100
- set :db_path, '/Users/stef/dev/databases'
101
-
102
- # # Sync database
103
- # RYAML = <<-BASH
104
- # function ryaml {
105
- # ruby -ryaml -e 'puts ARGV[1..-1].inject(YAML.load(File.read(ARGV[0]))) {|acc, key| acc[key] }' "$@"
106
- # };
107
- # BASH
108
-
109
- task :pull => :stages do
110
- queue RYAML
111
- queue! "HOST=$(ryaml #{deploy_to}/#{current_path}/config/database.yml #{rails_env} host)"
112
- queue! "DATABASE=$(ryaml #{deploy_to}/#{current_path}/config/database.yml #{rails_env} database)"
113
- queue! "USERNAME=$(ryaml #{deploy_to}/#{current_path}/config/database.yml #{rails_env} username)"
114
- queue! "PASSWORD=$(ryaml #{deploy_to}/#{current_path}/config/database.yml #{rails_env} password)"
115
- queue! "mysqldump $DATABASE --host=$HOST --user=$USERNAME --password=$PASSWORD > #{deploy_to}/dump.sql"
116
- queue! "gzip -f #{deploy_to}/dump.sql"
117
-
118
- to :after_hook do
119
- queue! "scp -P #{port} #{user}@#{domain}:#{deploy_to}/dump.sql.gz ."
120
- queue! "gunzip -f dump.sql.gz"
121
- queue! "#{RYAML} mysql --verbose --user=$(ryaml config/database.yml development username) --password=$(ryaml config/database.yml development password) $(ryaml config/database.yml development database) < dump.sql"
122
- queue! "rm dump.sql"
123
- end
124
- end
125
- end