voomify_tasks 0.1.3 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/run_psql.rb +10 -2
  2. data/lib/tasks/databases.rake +15 -6
  3. metadata +4 -4
data/lib/run_psql.rb CHANGED
@@ -1,12 +1,20 @@
1
1
  module RunPSQL
2
+ def db_file_path(filename)
3
+ "#{Rails.root}/db/sql/#{filename}"
4
+ end
2
5
  def run_psql_file(config, filename)
3
- file_with_path = "#{Rails.root}/db/sql/#{filename}"
6
+ file_with_path = db_file_path(filename)
4
7
  puts "Executing sql file: #{file_with_path}"
8
+ run_pg_command(config, "psql -f #{file_with_path}")
9
+ end
10
+
11
+ def run_pg_command(config, command, output_file=nil)
5
12
  database = config["database"]
6
13
  username = config["username"]
7
14
  host = config["host"]
8
15
  port = config["port"]
9
16
  password = config["password"]
10
- `export PGPASSWORD="#{password}";psql -f #{file_with_path} -U #{username} -h #{host} -p #{port} #{database};export PGPASSWORD=""`
17
+ pipe_to_file = output_file ? "> #{output_file}" : ""
18
+ `export PGPASSWORD="#{password}";#{command} -U #{username} -h #{host} -p #{port} #{database} #{pipe_to_file};export PGPASSWORD=""`
11
19
  end
12
20
  end
@@ -1,20 +1,25 @@
1
- require 'replace_rake_tasks'
2
- require 'run_psql'
3
- # we override thes``````````````````````````e tasks to use ddl file instead of ruby
1
+ TASKS_ROOT = File.expand_path(File.dirname(__FILE__))
2
+ require "#{TASKS_ROOT}/../replace_rake_tasks"
3
+ require "#{TASKS_ROOT}/../run_psql"
4
+ require 'fileutils'
5
+ # we override these tasks to use ddl file instead of ruby
4
6
 
5
7
  namespace :db do
6
8
  namespace :schema do
7
9
  override_task :load => :environment do
8
- run_psql_file(ActiveRecord::Base.configurations[Rails.env], "schema.sql")
10
+ run_psql_file(current_env, "schema.sql")
9
11
  end
10
12
 
11
13
  override_task :dump => :environment do
12
- puts 'This is a NOOP. The schema is defined in /db/sql/schema.sql.'
14
+ output_file = db_file_path("schema.sql")
15
+ FileUtils.mv(output_file, "#{output_file}.last") if FileTest.exists?(output_file)
16
+ run_pg_command(current_env, "pg_dump -c -o -O -x -s", output_file)
17
+ puts "Schema has been updated from the database. Last schema backed up to #{output_file}.last"
13
18
  end
14
19
  end
15
20
 
16
21
  override_task :seed => :environment do
17
- run_psql_file(ActiveRecord::Base.configurations[Rails.env], "seed.sql")
22
+ run_psql_file(current_env, "seed.sql")
18
23
  end
19
24
 
20
25
  namespace :test do
@@ -31,4 +36,8 @@ private
31
36
 
32
37
  include RunPSQL
33
38
 
39
+ def current_env
40
+ ActiveRecord::Base.configurations[Rails.env]
41
+ end
42
+
34
43
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: voomify_tasks
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 3
10
- version: 0.1.3
9
+ - 5
10
+ version: 0.1.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Russell Edens
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-03 00:00:00 -04:00
18
+ date: 2010-10-07 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies: []
21
21