SQL_Dump 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/sqldump.rb +69 -67
  2. metadata +3 -3
data/lib/sqldump.rb CHANGED
@@ -1,70 +1,72 @@
1
1
  require 'rubygems'
2
2
  require 'mysql'
3
- def sqldump(user, pass, db)
4
- time = Time.new
5
- date = "#{time.year}-#{time.month}-#{time.day}"
6
- begin
7
- my = Mysql.new('localhost', user, pass, db)
8
- res = my.query("show tables")
9
- tables = []
10
- num_tables = res.num_rows
11
- num_tables.times do
12
- tables.push(res.fetch_row)
13
- end
14
- tables.each do |tbl|
15
- res = my.query("show create table #{tbl}")
16
- create = ''
17
- res.each_hash do |x|
18
- create = "#{x['Create Table']};"
19
- end
20
- File.open("#{db}_#{date}.sql", "a") do |file|
21
- file.puts(create)
22
- end
23
- res = my.query("select * from #{tbl}")
24
- num_rows = res.num_rows
25
- content = []
26
- num_rows.times do
27
- content.push(res.fetch_row.join("_____"))
28
- end
29
- res = my.query("select * from #{tbl}")
30
- num_rows = res.num_rows
31
- content = []
32
- num_rows.times do
33
- content.push(res.fetch_row.join("_____"))
34
- end
35
- content.each do |cont|
36
- res = my.query("explain #{tbl}")
37
- num_cats = res.num_rows
38
- y = 1
39
- cats = []
40
- File.open("#{db}_#{date}.sql", "a") do |file|
41
- file.print("insert into #{tbl}(")
42
- end
43
- res.each_hash do |x|
44
- File.open("#{db}_#{date}.sql", "a") do |file|
45
- file.print("#{x['Field']}") if y == num_cats
46
- file.print("#{x['Field']}, ") if y != num_cats
47
- end
48
- y += 1
49
- end
50
- File.open("#{db}_#{date}.sql", "a") do |file|
51
- file.print(") values(")
52
- end
53
- cont = cont.gsub(/'/, "\\\\'")
54
- cont = cont.gsub(/_____/, "', '")
55
- File.open("#{db}_#{date}.sql", "a") do |file|
56
- file.puts("'#{cont}');")
57
- end
58
- end
59
- end
60
- rescue Mysql::Error => e
61
- puts "MySQL dump of #{db} failed!"
62
- puts "#{e.errno}: #{e.error}"
63
- puts "Exiting for safety"
64
- exit
65
- ensure
66
- my.close
67
- end
68
- cpuser = Dir.pwd.split('/')[2]
69
- #FileUtils.chown_R "#{cpuser}", "#{cpuser}", "#{db}_#{date}.sql"
3
+ class SQLDUMP
4
+ def sqldump(user, pass, db)
5
+ time = Time.new
6
+ date = "#{time.year}-#{time.month}-#{time.day}"
7
+ begin
8
+ my = Mysql.new('localhost', user, pass, db)
9
+ res = my.query("show tables")
10
+ tables = []
11
+ num_tables = res.num_rows
12
+ num_tables.times do
13
+ tables.push(res.fetch_row)
14
+ end
15
+ tables.each do |tbl|
16
+ res = my.query("show create table #{tbl}")
17
+ create = ''
18
+ res.each_hash do |x|
19
+ create = "#{x['Create Table']};"
20
+ end
21
+ File.open("#{db}_#{date}.sql", "a") do |file|
22
+ file.puts(create)
23
+ end
24
+ res = my.query("select * from #{tbl}")
25
+ num_rows = res.num_rows
26
+ content = []
27
+ num_rows.times do
28
+ content.push(res.fetch_row.join("_____"))
29
+ end
30
+ res = my.query("select * from #{tbl}")
31
+ num_rows = res.num_rows
32
+ content = []
33
+ num_rows.times do
34
+ content.push(res.fetch_row.join("_____"))
35
+ end
36
+ content.each do |cont|
37
+ res = my.query("explain #{tbl}")
38
+ num_cats = res.num_rows
39
+ y = 1
40
+ cats = []
41
+ File.open("#{db}_#{date}.sql", "a") do |file|
42
+ file.print("insert into #{tbl}(")
43
+ end
44
+ res.each_hash do |x|
45
+ File.open("#{db}_#{date}.sql", "a") do |file|
46
+ file.print("#{x['Field']}") if y == num_cats
47
+ file.print("#{x['Field']}, ") if y != num_cats
48
+ end
49
+ y += 1
50
+ end
51
+ File.open("#{db}_#{date}.sql", "a") do |file|
52
+ file.print(") values(")
53
+ end
54
+ cont = cont.gsub(/'/, "\\\\'")
55
+ cont = cont.gsub(/_____/, "', '")
56
+ File.open("#{db}_#{date}.sql", "a") do |file|
57
+ file.puts("'#{cont}');")
58
+ end
59
+ end
60
+ end
61
+ rescue Mysql::Error => e
62
+ puts "MySQL dump of #{db} failed!"
63
+ puts "#{e.errno}: #{e.error}"
64
+ puts "Exiting for safety"
65
+ exit
66
+ ensure
67
+ my.close
68
+ end
69
+ cpuser = Dir.pwd.split('/')[2]
70
+ #FileUtils.chown_R "#{cpuser}", "#{cpuser}", "#{db}_#{date}.sql"
71
+ end
70
72
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: SQL_Dump
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 1
10
- version: 1.0.1
9
+ - 2
10
+ version: 1.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jason Colyer