mysqlaudit 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -60,9 +60,31 @@ DELETE FROM foo WHERE id = 2;
60
60
 
61
61
  To apply rollback with specific transaction, this generate SQL output:
62
62
 
63
+ ### Get all changes:
64
+
65
+ You change data, could reverse with simple statements:
66
+
67
+ ```Shell
68
+ $ mysqlaudit rollback --host 127.0.0.1 \
69
+ --user root \
70
+ --pass admin \
71
+ --schema audit \
72
+ --table foo \
73
+ ```
74
+
75
+ Output of last executed command:
76
+
77
+ ```
78
+ /* 2013-07-11 07:25:25 */ INSERT INTO foo (id, email, name, birthday) VALUES (2, 'def@def.org', 'Mengano', '1979-03-28 00:00:00');
79
+ /* 2013-07-11 07:26:26 */ UPDATE users SET name = 'Jaimito' WHERE id = 3;
80
+ /* 2013-07-11 07:27:27 */ DELETE FROM foo WHERE id = 1;
81
+ /* 2013-07-11 07:27:27 */ DELETE FROM foo WHERE id = 2;
82
+ /* 2013-07-11 07:27:27 */ DELETE FROM foo WHERE id = 3;
83
+ ```
84
+
63
85
  ### Get deleted data:
64
86
 
65
- You delete data, could reverse with simple insert statements.
87
+ You delete data, could reverse with simple insert statements:
66
88
 
67
89
  ```Shell
68
90
  $ mysqlaudit rollback --host 127.0.0.1 \
@@ -82,7 +104,7 @@ Output of last executed command:
82
104
  ### Get updated data:
83
105
 
84
106
  You updated data, could reverse with simple update statements to change new for
85
- old value.
107
+ old value:
86
108
 
87
109
  ```Shell
88
110
  $ mysqlaudit rollback --host 127.0.0.1 \
@@ -96,13 +118,12 @@ $ mysqlaudit rollback --host 127.0.0.1 \
96
118
  Output of last executed command:
97
119
 
98
120
  ```
99
- /* 2013-07-11 07:26:26 */ UPDATE users SET birthday = '1980-06-15 00:00:00' WHERE id = 3;
100
121
  /* 2013-07-11 07:26:26 */ UPDATE users SET name = 'Jaimito' WHERE id = 3;
101
122
  ```
102
123
 
103
124
  ### Get inserted data:
104
125
 
105
- You inserted data, could reverse with simple delete statements.
126
+ You inserted data, could reverse with simple delete statements:
106
127
 
107
128
  ```Shell
108
129
  $ mysqlaudit rollback --host 127.0.0.1 \
@@ -123,7 +144,7 @@ Output of last executed command:
123
144
 
124
145
  ### Uninstall test enviroment:
125
146
 
126
- Uninstall all triggers and drop audit table.
147
+ Uninstall all triggers and drop audit table:
127
148
 
128
149
  ```Shell
129
150
  $ mysqlaudit uninstall --host 127.0.0.1 \
@@ -140,6 +161,24 @@ Drop testing table and database:
140
161
  DROP TABLE foo;
141
162
  DROP DATABASE audit;
142
163
  ```
164
+ ### Config file example:
165
+
166
+ ```YAML
167
+ development:
168
+
169
+ test:
170
+
171
+ production:
172
+ host: localhost
173
+ user: root
174
+ password: admin
175
+ database: audit
176
+ ```
177
+
178
+ ### Execute command with config file and enviroment:
179
+ ```Shell
180
+ $ ENVIRONMENT=production mysqlaudit install -c config.yml --table foo
181
+ ```
143
182
 
144
183
  For more information:
145
184
 
@@ -6,7 +6,9 @@ $LOAD_PATH << './lib'
6
6
  require 'rubygems'
7
7
  require 'commander'
8
8
  require 'commander/import'
9
+ require 'yaml'
9
10
  require 'mysqlaudit'
11
+ require 'mysqlaudit/config'
10
12
  require 'mysqlaudit/actions'
11
13
  require 'mysqlaudit/version'
12
14
 
@@ -15,15 +17,22 @@ program :version, Mysqlaudit::VERSION
15
17
  program :description, 'MySQL tool for audit all tables with triggers.'
16
18
  program :help, 'Author', 'Nicola Strappazzon <nicola51980@gmail.com>'
17
19
 
20
+ global_option('-c', '--config FILE')
21
+ global_option('-H', '--host STRING')
22
+ global_option('-u', '--user STRING')
23
+ global_option('-p', '--pass STRING')
24
+ global_option('-s', '--schema STRING')
25
+
18
26
  command :install do |c|
19
27
  c.description = 'Install audit table'
20
28
  c.syntax = 'mysqlaudit install --host 127.0.0.1 --user root [--pass admin] --schema sakila [--table foo]'
21
- c.option '--host STRING', String, 'Host'
22
- c.option '--user STRING', String, 'User'
23
- c.option '--pass STRING', String, 'Password'
24
- c.option '--schema STRING', String, 'Schema name'
25
29
  c.option '--table STRING', String, 'Table name'
30
+
26
31
  c.action do |args, options|
32
+ configs = Mysqlaudit::Config.new()
33
+ configs.load(options.config)
34
+ configs.merge(options)
35
+
27
36
  if options.host.nil? ||
28
37
  options.user.nil? ||
29
38
  options.schema.nil?
@@ -41,13 +50,14 @@ end
41
50
  command :uninstall do |c|
42
51
  c.description = 'Uninstall audit table'
43
52
  c.syntax = 'mysqlaudit uninstall --host 127.0.0.1 --user root [--pass admin] --schema sakila [--table foo] [--[no-]drop-audit-table]'
44
- c.option '--host STRING', String, 'Host'
45
- c.option '--user STRING', String, 'User'
46
- c.option '--pass STRING', String, 'Password'
47
- c.option '--schema STRING', String, 'Schema name'
48
53
  c.option '--table STRING', String, 'Table name'
49
54
  c.option '--[no-]drop-audit-table', 'Drop audit table'
55
+
50
56
  c.action do |args, options|
57
+ configs = Mysqlaudit::Config.new()
58
+ configs.load(options.config)
59
+ configs.merge(options)
60
+
51
61
  if options.host.nil? ||
52
62
  options.user.nil? ||
53
63
  options.schema.nil?
@@ -66,13 +76,14 @@ end
66
76
  command :rollback do |c|
67
77
  c.description = 'Rollback transaction cath in audit table'
68
78
  c.syntax = 'mysqlaudit rollback --host 127.0.0.1 --user root [--pass admin] --schema sakila --table foo [--statement all|insert|update|delete]'
69
- c.option '--host STRING', String, 'Host'
70
- c.option '--user STRING', String, 'User'
71
- c.option '--pass STRING', String, 'Password'
72
- c.option '--schema STRING', String, 'Schema name'
73
79
  c.option '--table STRING', String, 'Table name'
74
80
  c.option '--statement STRING', String, 'Statement operation: all, insert, update, delete'
81
+
75
82
  c.action do |args, options|
83
+ configs = Mysqlaudit::Config.new()
84
+ configs.load(options.config)
85
+ configs.merge(options)
86
+
76
87
  options.default statement: :all
77
88
 
78
89
  if options.host.nil? ||
@@ -0,0 +1,29 @@
1
+
2
+ module Mysqlaudit
3
+ class Config
4
+ @configs = nil
5
+
6
+ def load(file)
7
+ if !file.nil? && !ENV['ENVIRONMENT'].nil?
8
+ path = File.expand_path(File.join(Dir.pwd, file))
9
+
10
+ if File.exist?(path)
11
+ @configs = YAML.load_file(path)
12
+ @configs = @configs[ENV['ENVIRONMENT']]
13
+ @configs = @configs.inject({}){|config,(k,v)| config[k.to_sym] = v; config}
14
+ end
15
+ end
16
+ end
17
+
18
+ def merge(options)
19
+ if !@configs.nil?
20
+ options.host = options.host || @configs[:host]
21
+ options.user = options.user || @configs[:user]
22
+ options.pass = options.password || @configs[:password]
23
+ options.schema = options.schema || @configs[:database]
24
+ end
25
+
26
+ options
27
+ end
28
+ end
29
+ end
@@ -1,3 +1,3 @@
1
1
  module Mysqlaudit
2
- VERSION = '0.0.5'
2
+ VERSION = '0.0.6'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mysqlaudit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-29 00:00:00.000000000 Z
12
+ date: 2013-08-08 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: MySQL tool for audit all tables with triggers.
15
15
  email: nicola51980@gmail.com
@@ -21,6 +21,7 @@ files:
21
21
  - bin/mysqlaudit
22
22
  - lib/mysqlaudit/actions.rb
23
23
  - lib/mysqlaudit/audit.rb
24
+ - lib/mysqlaudit/config.rb
24
25
  - lib/mysqlaudit/version.rb
25
26
  - lib/mysqlaudit.rb
26
27
  - LICENSE.txt