flattendb 0.0.4 → 0.0.5
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 +2 -2
- data/Rakefile +2 -1
- data/bin/flattendb.mdb +2 -2
- data/bin/flattendb.mysql +16 -15
- data/lib/flattendb/base.rb +1 -1
- data/lib/flattendb/version.rb +4 -4
- metadata +10 -8
data/README
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
== VERSION
|
4
4
|
|
5
|
-
This documentation refers to flattendb version 0.0.
|
5
|
+
This documentation refers to flattendb version 0.0.5
|
6
6
|
|
7
7
|
|
8
8
|
== DESCRIPTION
|
@@ -26,7 +26,7 @@ Rubyforge project:: <http://rubyforge.org/projects/prometheus>
|
|
26
26
|
|
27
27
|
== LICENSE AND COPYRIGHT
|
28
28
|
|
29
|
-
Copyright (C) 2007 University of Cologne,
|
29
|
+
Copyright (C) 2007-2010 University of Cologne,
|
30
30
|
Albertus-Magnus-Platz, 50932 Cologne, Germany
|
31
31
|
|
32
32
|
flattendb is free software: you can redistribute it and/or modify it under the
|
data/Rakefile
CHANGED
data/bin/flattendb.mdb
CHANGED
data/bin/flattendb.mysql
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
#! /usr/bin/ruby
|
2
2
|
|
3
|
-
# vi:ft=ruby
|
4
|
-
|
5
3
|
#--
|
6
4
|
###############################################################################
|
7
5
|
# #
|
@@ -42,7 +40,7 @@ else
|
|
42
40
|
abort "Input file doesn't seem to be a valid XML file, XML declaration missing"
|
43
41
|
end
|
44
42
|
when :sql
|
45
|
-
$dump_file = $infile.sub(/\.(?:sql|dump)
|
43
|
+
$dump_file = $infile.sub(/\.(?:sql|dump)(?:\.gz)?\z/i, '') << '.xml'
|
46
44
|
abort "Dump file and output file are the same: #{$dump_file} = #{$outfile}" \
|
47
45
|
if File.expand_path($dump_file) == File.expand_path($outfile)
|
48
46
|
|
@@ -54,34 +52,35 @@ else
|
|
54
52
|
|
55
53
|
mysql_user = ask('Please enter the MySQL user name: ') \
|
56
54
|
{ |q| q.default = ENV['USER'] }
|
57
|
-
mysql_pass = ask(
|
55
|
+
mysql_pass = ask('Please enter the MySQL password for that user: ') \
|
58
56
|
{ |q| q.echo = false }
|
59
57
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
temp_db
|
64
|
-
|
65
|
-
|
58
|
+
is_root = mysql_user == 'root'
|
59
|
+
|
60
|
+
temp_db = ENV['FLATTEN_DB'] || 'flattendb_temp'
|
61
|
+
temp_db << '_%d_%d' % [Time.now, $$] if is_root
|
62
|
+
|
63
|
+
temp_user = ENV['FLATTEN_USER'] || 'flattendb_user'
|
64
|
+
temp_pass = ENV['FLATTEN_PASS'] || 'flattendb_pass'
|
66
65
|
|
67
|
-
|
66
|
+
input = $infile =~ /\.gz\z/i ? "<(zcat #{$infile})" : "< #{$infile}"
|
67
|
+
mysql_args = "--one-database -u#{temp_user} -p#{temp_pass} #{temp_db} #{input}"
|
68
68
|
dump_args = "--xml -u#{temp_user} -p#{temp_pass} #{temp_db} > #{$dump_file}"
|
69
69
|
|
70
70
|
begin
|
71
71
|
mysql = Mysql.real_connect('localhost', mysql_user, mysql_pass)
|
72
72
|
|
73
73
|
mysql.query("CREATE DATABASE #{temp_db}")
|
74
|
-
mysql.query("GRANT ALL ON #{temp_db}.* TO '#{temp_user}'@'localhost' IDENTIFIED BY '#{temp_pass}'")
|
74
|
+
mysql.query("GRANT ALL ON #{temp_db}.* TO '#{temp_user}'@'localhost' IDENTIFIED BY '#{temp_pass}'") if is_root
|
75
75
|
|
76
76
|
system("#{mysql_cmd} #{mysql_args} && #{dump_cmd} #{dump_args}")
|
77
77
|
rescue Mysql::Error => err
|
78
78
|
abort "ERROR #{err.errno} (#{err.sqlstate}): #{err.error}"
|
79
79
|
ensure
|
80
80
|
if mysql
|
81
|
-
mysql.query("REVOKE ALL ON #{temp_db}.* FROM '#{temp_user}'@'localhost'")
|
82
|
-
if mysql_user == 'root'
|
83
|
-
|
81
|
+
mysql.query("REVOKE ALL ON #{temp_db}.* FROM '#{temp_user}'@'localhost'") if is_root
|
84
82
|
mysql.query("DROP DATABASE IF EXISTS #{temp_db}")
|
83
|
+
|
85
84
|
mysql.close
|
86
85
|
end
|
87
86
|
end
|
@@ -89,3 +88,5 @@ else
|
|
89
88
|
$infile = $dump_file
|
90
89
|
end
|
91
90
|
end
|
91
|
+
|
92
|
+
# vim:ft=ruby
|
data/lib/flattendb/base.rb
CHANGED
data/lib/flattendb/version.rb
CHANGED
@@ -3,9 +3,9 @@
|
|
3
3
|
# #
|
4
4
|
# A component of flattendb, the relational database flattener. #
|
5
5
|
# #
|
6
|
-
# Copyright (C) 2007 University of Cologne,
|
7
|
-
#
|
8
|
-
#
|
6
|
+
# Copyright (C) 2007-2010 University of Cologne, #
|
7
|
+
# Albertus-Magnus-Platz, #
|
8
|
+
# 50932 Cologne, Germany #
|
9
9
|
# #
|
10
10
|
# Authors: #
|
11
11
|
# Jens Wille <jens.wille@uni-koeln.de> #
|
@@ -32,7 +32,7 @@ module FlattenDB
|
|
32
32
|
|
33
33
|
MAJOR = 0
|
34
34
|
MINOR = 0
|
35
|
-
TINY =
|
35
|
+
TINY = 5
|
36
36
|
|
37
37
|
class << self
|
38
38
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flattendb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jens Wille
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-02-02 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -84,16 +84,18 @@ files:
|
|
84
84
|
- example/mysql-sample.sql
|
85
85
|
has_rdoc: true
|
86
86
|
homepage: http://prometheus.rubyforge.org/flattendb
|
87
|
+
licenses: []
|
88
|
+
|
87
89
|
post_install_message:
|
88
90
|
rdoc_options:
|
89
|
-
- --
|
90
|
-
-
|
91
|
+
- --charset
|
92
|
+
- UTF-8
|
91
93
|
- --title
|
92
94
|
- flattendb Application documentation
|
93
95
|
- --main
|
94
96
|
- README
|
95
|
-
- --
|
96
|
-
-
|
97
|
+
- --line-numbers
|
98
|
+
- --inline-source
|
97
99
|
- --all
|
98
100
|
require_paths:
|
99
101
|
- lib
|
@@ -112,9 +114,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
112
114
|
requirements: []
|
113
115
|
|
114
116
|
rubyforge_project: prometheus
|
115
|
-
rubygems_version: 1.3.
|
117
|
+
rubygems_version: 1.3.5
|
116
118
|
signing_key:
|
117
|
-
specification_version:
|
119
|
+
specification_version: 3
|
118
120
|
summary: Flatten relational databases.
|
119
121
|
test_files: []
|
120
122
|
|