rails_db_dump 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.
data/README.md CHANGED
@@ -6,7 +6,13 @@ An install-and-forget KISSy wrapper around your database dumper.
6
6
 
7
7
  rake db:dump
8
8
 
9
- It has no parameters and dumps the current database to standart output.
9
+ Without parameters the task dumps the current database to standard output.
10
+
11
+ Pass a `TABLE_NAME` environment variable to dump a single table:
12
+
13
+ rake db:dump TABLE_NAME=locations
14
+
15
+ There is also a symmetrical task, `rake db:restore`, which restores the database from standard input.
10
16
 
11
17
  ## Installation
12
18
 
@@ -1,7 +1,10 @@
1
1
  namespace :db do
2
+ desc "Dump the database to standard output. Pass a TABLE_NAME environment variable to dump a single table"
2
3
  task :dump do
3
4
  require 'yaml'
4
5
  config = YAML.load_file(File.join(Rails.root,'config','database.yml'))[Rails.env]
6
+ table_name = ENV['TABLE_NAME']
7
+
5
8
  case config["adapter"]
6
9
  when /^mysql/
7
10
  args = {
@@ -13,6 +16,7 @@ namespace :db do
13
16
  'password' => '--password'
14
17
  }.map { |opt, arg| "#{arg}=#{config[opt]}" if config[opt] }.compact
15
18
  args << config['database']
19
+ args << table_name unless table_name.blank?
16
20
 
17
21
  exec('mysqldump', *args)
18
22
 
@@ -21,16 +25,28 @@ namespace :db do
21
25
  ENV['PGHOST'] = config["host"] if config["host"]
22
26
  ENV['PGPORT'] = config["port"].to_s if config["port"]
23
27
  ENV['PGPASSWORD'] = config["password"].to_s if config["password"]
24
- exec('pg_dump', config["database"])
28
+ if table_name.blank?
29
+ exec('pg_dump', config["database"])
30
+ else
31
+ exec('pg_dump', '-t', table_name, config["database"])
32
+ end
25
33
 
26
34
  when "sqlite"
35
+ raise 'Table dumping not supported with sqlite... yet' unless table_name.blank?
27
36
  exec('sqlite', config["database"], '.dump')
28
37
 
29
38
  when "sqlite3"
39
+ raise 'Table dumping not supported with sqlite... yet' unless table_name.blank?
30
40
  exec('sqlite3', config['database'], '.dump')
31
41
 
32
42
  else
33
43
  abort "Don't know how to dump #{config['database']}."
34
44
  end
35
45
  end
46
+
47
+ desc "Restore the database from standard input."
48
+ task :restore do
49
+ # Doesn't get any simpler than that!
50
+ exec File.join(Rails.root, 'script', 'dbconsole'), '--include-password'
51
+ end
36
52
  end
@@ -1,3 +1,3 @@
1
1
  module RailsDbDump
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_db_dump
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 0
9
8
  - 1
10
- version: 0.0.1
9
+ - 0
10
+ version: 0.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Leonid Shevtsov
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-01 00:00:00 +02:00
18
+ date: 2010-12-09 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies: []
21
21