jzimmek-reportme 0.0.11 → 0.0.12
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/VERSION +1 -1
- data/lib/reportme/report_factory.rb +70 -22
- data/test/reportme_test.rb +195 -8
- data/test/test_helper.rb +4 -4
- metadata +1 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.12
|
@@ -6,6 +6,7 @@ module Reportme
|
|
6
6
|
def self.create(since=Date.today, &block)
|
7
7
|
rme = ReportFactory.new(since)
|
8
8
|
rme.instance_eval(&block)
|
9
|
+
rme.connect
|
9
10
|
rme.run
|
10
11
|
rme
|
11
12
|
end
|
@@ -16,10 +17,19 @@ module Reportme
|
|
16
17
|
@reports = []
|
17
18
|
@since = since.to_date
|
18
19
|
end
|
20
|
+
|
21
|
+
def connect
|
22
|
+
puts "connection: #{@properties}"
|
23
|
+
ActiveRecord::Base.establish_connection(@properties)
|
24
|
+
end
|
25
|
+
|
26
|
+
def connection(properties)
|
27
|
+
@properties = properties
|
28
|
+
end
|
19
29
|
|
20
|
-
def periods(today = Date.today)
|
30
|
+
def self.periods(today = Date.today)
|
21
31
|
|
22
|
-
|
32
|
+
r = []
|
23
33
|
|
24
34
|
[:today, :day, :week, :calendar_week, :month, :calendar_month].each do |period|
|
25
35
|
|
@@ -29,24 +39,26 @@ module Reportme
|
|
29
39
|
when :day
|
30
40
|
[today - 1.day, today - 1.day]
|
31
41
|
when :week
|
32
|
-
# [today - 1.day - 1.week, today - 1.day]
|
33
42
|
[today - 1.week, today - 1.day]
|
34
43
|
when :calendar_week
|
35
|
-
|
36
|
-
|
44
|
+
day_lastweek = today.to_date - 7.days
|
45
|
+
monday = day_lastweek - (day_lastweek.cwday - 1).days
|
46
|
+
[monday, monday + 6.days]
|
37
47
|
when :month
|
38
|
-
|
39
|
-
[today - 1.month, today - 1.day]
|
48
|
+
[today - 1.day - 30.days, today - 1.day]
|
40
49
|
when :calendar_month
|
41
50
|
n = today - 1.month
|
42
51
|
[n.beginning_of_month, n.end_of_month]
|
43
52
|
end
|
44
53
|
|
45
|
-
|
54
|
+
von = von.to_datetime
|
55
|
+
bis = bis.to_datetime + 23.hours + 59.minutes + 59.seconds
|
56
|
+
|
57
|
+
r << {:name => period, :von => von, :bis => bis}
|
46
58
|
|
47
59
|
end
|
48
60
|
|
49
|
-
|
61
|
+
r
|
50
62
|
end
|
51
63
|
|
52
64
|
def report_information_table_name
|
@@ -61,10 +73,30 @@ module Reportme
|
|
61
73
|
select_value("select 1 from #{report_information_table_name} where report = '#{name}' and von = '#{von}' and bis = '#{bis}'") != nil
|
62
74
|
end
|
63
75
|
|
76
|
+
def schema_name
|
77
|
+
schema = @properties[:database]
|
78
|
+
raise "missing :database in connection properties" unless schema
|
79
|
+
schema
|
80
|
+
end
|
81
|
+
|
82
|
+
def columns(table_name)
|
83
|
+
sql = <<-SQL
|
84
|
+
select
|
85
|
+
column_name
|
86
|
+
from
|
87
|
+
information_schema.columns
|
88
|
+
where
|
89
|
+
table_schema = '#{schema_name}'
|
90
|
+
and table_name = '#{table_name}'
|
91
|
+
;
|
92
|
+
SQL
|
93
|
+
select_values(sql)
|
94
|
+
end
|
95
|
+
|
64
96
|
def reset
|
65
97
|
exec("drop table if exists #{report_information_table_name};")
|
66
98
|
|
67
|
-
periods.each do |period|
|
99
|
+
ReportFactory.periods.each do |period|
|
68
100
|
@reports.each do |r|
|
69
101
|
exec("drop table if exists #{r.table_name(period[:name])};")
|
70
102
|
end
|
@@ -102,12 +134,11 @@ module Reportme
|
|
102
134
|
end
|
103
135
|
end
|
104
136
|
|
105
|
-
def
|
106
|
-
|
107
|
-
table_name = report.table_name(:week)
|
137
|
+
def try_report_by_daily_reports(report, period_name, _von, num_days, num_days_required)
|
138
|
+
table_name = report.table_name(period_name)
|
108
139
|
|
109
140
|
von = _von.strftime("%Y-%m-%d 00:00:00")
|
110
|
-
bis =
|
141
|
+
bis = (_von + num_days.days).strftime("%Y-%m-%d 23:59:59")
|
111
142
|
|
112
143
|
existing_daily_reports = select_value(<<-SQL
|
113
144
|
select
|
@@ -116,27 +147,31 @@ module Reportme
|
|
116
147
|
#{report_information_table_name}
|
117
148
|
where
|
118
149
|
report = '#{report.table_name(:day)}'
|
119
|
-
and von between '#{von}' and '#{(_von +
|
150
|
+
and von between '#{von}' and '#{(_von + num_days.days).strftime("%Y-%m-%d 00:00:00")}'
|
120
151
|
SQL
|
121
152
|
).to_i
|
122
153
|
|
123
|
-
puts "
|
154
|
+
puts "#{period_name}ly report depends on #{num_days_required} daily reports ... #{existing_daily_reports} daily found"
|
124
155
|
|
125
|
-
if existing_daily_reports ==
|
156
|
+
if existing_daily_reports == num_days_required
|
157
|
+
|
158
|
+
column_names = ["'#{von}' as von"]
|
159
|
+
column_names += columns(table_name).find_all{|c|c != "von"}.collect{|c|"d.#{c} as #{c}"}
|
160
|
+
|
126
161
|
ActiveRecord::Base.transaction do
|
127
162
|
exec("insert into #{report_information_table_name} values ('#{table_name}', '#{von}', '#{bis}', now());")
|
128
|
-
exec("insert into #{table_name} select
|
163
|
+
exec("insert into #{table_name} select #{column_names.join(',')} from #{report.table_name(:day)} as d where d.von between '#{von}' and '#{(_von + num_days.days).strftime("%Y-%m-%d 00:00:00")}';")
|
129
164
|
end
|
130
165
|
end
|
131
166
|
end
|
132
|
-
|
167
|
+
|
133
168
|
def run
|
134
169
|
|
135
170
|
ensure_report_informations_table_exist
|
136
171
|
|
137
172
|
while !@since.future?
|
138
173
|
|
139
|
-
periods(@since).each do |period|
|
174
|
+
ReportFactory.periods(@since).each do |period|
|
140
175
|
|
141
176
|
@reports.each do |r|
|
142
177
|
|
@@ -155,13 +190,19 @@ module Reportme
|
|
155
190
|
table_exist = r.table_exist?(period_name)
|
156
191
|
sql = r.sql(von, bis, period_name)
|
157
192
|
|
158
|
-
puts "report: #{r.table_name(period_name)}
|
193
|
+
puts "report: #{r.table_name(period_name)} von: #{von}, bis: #{bis}"
|
159
194
|
|
160
195
|
ensure_report_table_exist(r, period_name)
|
161
196
|
|
162
197
|
report_exists = report_exists?(table_name, von, bis)
|
163
198
|
|
164
|
-
|
199
|
+
try_report_by_daily_reports(r, :week, _von, 6, 7) if period_name == :week && !report_exists
|
200
|
+
try_report_by_daily_reports(r, :calendar_week, _von, 6, 7) if period_name == :calendar_week && !report_exists
|
201
|
+
|
202
|
+
# TODO: implement monat by daily reports
|
203
|
+
# try_report_by_daily_reports(r, :month, _von, 29 + (_von.end_of_month.day == 31 ? 1 : 0), 30) if period_name == :month && !report_exists
|
204
|
+
|
205
|
+
try_report_by_daily_reports(r, :calendar_month, _von, _bis.day - _von.day, _bis.day) if period_name == :calendar_month && !report_exists
|
165
206
|
|
166
207
|
report_exists = report_exists?(table_name, von, bis)
|
167
208
|
|
@@ -199,6 +240,13 @@ module Reportme
|
|
199
240
|
puts "------------------------ //"
|
200
241
|
ActiveRecord::Base.connection.select_value(sql)
|
201
242
|
end
|
243
|
+
|
244
|
+
def select_values(sql)
|
245
|
+
puts "// ------------------------"
|
246
|
+
puts "select_values: #{sql}"
|
247
|
+
puts "------------------------ //"
|
248
|
+
ActiveRecord::Base.connection.select_values(sql)
|
249
|
+
end
|
202
250
|
|
203
251
|
def report(name, &block)
|
204
252
|
|
data/test/reportme_test.rb
CHANGED
@@ -27,6 +27,9 @@ class ReportmeTest < Test::Unit::TestCase
|
|
27
27
|
opts = defaults.merge(opts)
|
28
28
|
|
29
29
|
@rme = Reportme::ReportFactory.create opts[:since] do
|
30
|
+
|
31
|
+
connection :adapter => "mysql", :database => "report_me_test", :username => "root", :password => "root", :host => "localhost", :port => 3306
|
32
|
+
|
30
33
|
report :visits do
|
31
34
|
periods opts[:periods]
|
32
35
|
source do |von, bis|
|
@@ -64,7 +67,7 @@ class ReportmeTest < Test::Unit::TestCase
|
|
64
67
|
exec("truncate visits;");
|
65
68
|
end
|
66
69
|
end
|
67
|
-
|
70
|
+
|
68
71
|
should "create one visitor in the today report for channel sem" do
|
69
72
|
exec("insert into visits values (null, 'sem', now())");
|
70
73
|
create_visit_report_factory.run
|
@@ -154,17 +157,201 @@ class ReportmeTest < Test::Unit::TestCase
|
|
154
157
|
exec("insert into visits values (null, 'sem', date_sub(curdate(), interval 8 day));");
|
155
158
|
# should be ignored in weekly
|
156
159
|
exec("insert into visits values (null, 'sem', date_sub(curdate(), interval 9 day));");
|
157
|
-
|
158
|
-
create_visit_report_factory(:since => 10.days.ago
|
160
|
+
|
161
|
+
create_visit_report_factory(:since => 10.days.ago, :periods => [:day]).run
|
159
162
|
|
160
163
|
exec("truncate visits;")
|
161
|
-
|
164
|
+
|
162
165
|
create_visit_report_factory(:periods => [:week]).run
|
163
|
-
|
164
|
-
assert_equal 7, one("select count(1) as cnt from visits_week where von between date_sub(curdate(), interval 7 day) and date_sub(curdate(), interval 1 day)")["cnt"].to_i
|
166
|
+
|
167
|
+
assert_equal 7, one("select count(1) as cnt from visits_week where date(von) between date_sub(curdate(), interval 7 day) and date_sub(curdate(), interval 1 day)")["cnt"].to_i
|
165
168
|
end
|
166
169
|
|
167
|
-
|
168
|
-
|
170
|
+
should "generate the von/bis range for the periods" do
|
171
|
+
|
172
|
+
##
|
173
|
+
# anfang monat - 30 tage
|
174
|
+
##
|
175
|
+
|
176
|
+
periods = {}
|
177
|
+
Reportme::ReportFactory.periods('2009-06-01'.to_date).each{|p| periods[p[:name]] = p}
|
178
|
+
|
179
|
+
assert_equal '2009-06-01 00:00:00'.to_datetime, periods[:today][:von]
|
180
|
+
assert_equal '2009-06-01 23:59:59'.to_datetime, periods[:today][:bis]
|
181
|
+
|
182
|
+
assert_equal '2009-05-31 00:00:00'.to_datetime, periods[:day][:von]
|
183
|
+
assert_equal '2009-05-31 23:59:59'.to_datetime, periods[:day][:bis]
|
184
|
+
|
185
|
+
assert_equal '2009-05-25 00:00:00'.to_datetime, periods[:week][:von]
|
186
|
+
assert_equal '2009-05-31 23:59:59'.to_datetime, periods[:week][:bis]
|
187
|
+
|
188
|
+
assert_equal '2009-05-25 00:00:00'.to_datetime, periods[:calendar_week][:von]
|
189
|
+
assert_equal '2009-05-31 23:59:59'.to_datetime, periods[:calendar_week][:bis]
|
190
|
+
|
191
|
+
assert_equal '2009-05-01 00:00:00'.to_datetime, periods[:month][:von]
|
192
|
+
assert_equal '2009-05-31 23:59:59'.to_datetime, periods[:month][:bis]
|
193
|
+
|
194
|
+
assert_equal '2009-05-01 00:00:00'.to_datetime, periods[:calendar_month][:von]
|
195
|
+
assert_equal '2009-05-31 23:59:59'.to_datetime, periods[:calendar_month][:bis]
|
196
|
+
|
197
|
+
|
198
|
+
##
|
199
|
+
# mitten monat - 30 tage
|
200
|
+
##
|
201
|
+
|
202
|
+
periods.clear
|
203
|
+
Reportme::ReportFactory.periods('2009-06-24'.to_date).each{|p| periods[p[:name]] = p}
|
204
|
+
|
205
|
+
assert_equal '2009-06-24 00:00:00'.to_datetime, periods[:today][:von]
|
206
|
+
assert_equal '2009-06-24 23:59:59'.to_datetime, periods[:today][:bis]
|
207
|
+
|
208
|
+
assert_equal '2009-06-23 00:00:00'.to_datetime, periods[:day][:von]
|
209
|
+
assert_equal '2009-06-23 23:59:59'.to_datetime, periods[:day][:bis]
|
210
|
+
|
211
|
+
assert_equal '2009-06-17 00:00:00'.to_datetime, periods[:week][:von]
|
212
|
+
assert_equal '2009-06-23 23:59:59'.to_datetime, periods[:week][:bis]
|
213
|
+
|
214
|
+
assert_equal '2009-06-15 00:00:00'.to_datetime, periods[:calendar_week][:von]
|
215
|
+
assert_equal '2009-06-21 23:59:59'.to_datetime, periods[:calendar_week][:bis]
|
216
|
+
|
217
|
+
assert_equal '2009-05-24 00:00:00'.to_datetime, periods[:month][:von]
|
218
|
+
assert_equal '2009-06-23 23:59:59'.to_datetime, periods[:month][:bis]
|
169
219
|
|
220
|
+
assert_equal '2009-05-01 00:00:00'.to_datetime, periods[:calendar_month][:von]
|
221
|
+
assert_equal '2009-05-31 23:59:59'.to_datetime, periods[:calendar_month][:bis]
|
222
|
+
|
223
|
+
##
|
224
|
+
# ende monat - 30 tage
|
225
|
+
##
|
226
|
+
|
227
|
+
periods.clear
|
228
|
+
Reportme::ReportFactory.periods('2009-06-30'.to_date).each{|p| periods[p[:name]] = p}
|
229
|
+
|
230
|
+
assert_equal '2009-06-30 00:00:00'.to_datetime, periods[:today][:von]
|
231
|
+
assert_equal '2009-06-30 23:59:59'.to_datetime, periods[:today][:bis]
|
232
|
+
|
233
|
+
assert_equal '2009-06-29 00:00:00'.to_datetime, periods[:day][:von]
|
234
|
+
assert_equal '2009-06-29 23:59:59'.to_datetime, periods[:day][:bis]
|
235
|
+
|
236
|
+
assert_equal '2009-06-23 00:00:00'.to_datetime, periods[:week][:von]
|
237
|
+
assert_equal '2009-06-29 23:59:59'.to_datetime, periods[:week][:bis]
|
238
|
+
|
239
|
+
assert_equal '2009-06-22 00:00:00'.to_datetime, periods[:calendar_week][:von]
|
240
|
+
assert_equal '2009-06-28 23:59:59'.to_datetime, periods[:calendar_week][:bis]
|
241
|
+
|
242
|
+
assert_equal '2009-05-30 00:00:00'.to_datetime, periods[:month][:von]
|
243
|
+
assert_equal '2009-06-29 23:59:59'.to_datetime, periods[:month][:bis]
|
244
|
+
|
245
|
+
assert_equal '2009-05-01 00:00:00'.to_datetime, periods[:calendar_month][:von]
|
246
|
+
assert_equal '2009-05-31 23:59:59'.to_datetime, periods[:calendar_month][:bis]
|
247
|
+
|
248
|
+
##
|
249
|
+
# anfang monat - 31 tage
|
250
|
+
##
|
251
|
+
|
252
|
+
periods.clear
|
253
|
+
Reportme::ReportFactory.periods('2009-05-01'.to_date).each{|p| periods[p[:name]] = p}
|
254
|
+
|
255
|
+
assert_equal '2009-05-01 00:00:00'.to_datetime, periods[:today][:von]
|
256
|
+
assert_equal '2009-05-01 23:59:59'.to_datetime, periods[:today][:bis]
|
257
|
+
|
258
|
+
assert_equal '2009-04-30 00:00:00'.to_datetime, periods[:day][:von]
|
259
|
+
assert_equal '2009-04-30 23:59:59'.to_datetime, periods[:day][:bis]
|
260
|
+
|
261
|
+
assert_equal '2009-04-24 00:00:00'.to_datetime, periods[:week][:von]
|
262
|
+
assert_equal '2009-04-30 23:59:59'.to_datetime, periods[:week][:bis]
|
263
|
+
|
264
|
+
assert_equal '2009-04-20 00:00:00'.to_datetime, periods[:calendar_week][:von]
|
265
|
+
assert_equal '2009-04-26 23:59:59'.to_datetime, periods[:calendar_week][:bis]
|
266
|
+
|
267
|
+
assert_equal '2009-03-31 00:00:00'.to_datetime, periods[:month][:von]
|
268
|
+
assert_equal '2009-04-30 23:59:59'.to_datetime, periods[:month][:bis]
|
269
|
+
|
270
|
+
assert_equal '2009-04-01 00:00:00'.to_datetime, periods[:calendar_month][:von]
|
271
|
+
assert_equal '2009-04-30 23:59:59'.to_datetime, periods[:calendar_month][:bis]
|
272
|
+
|
273
|
+
##
|
274
|
+
# mitte monat - 31 tage
|
275
|
+
##
|
276
|
+
|
277
|
+
periods.clear
|
278
|
+
Reportme::ReportFactory.periods('2009-05-15'.to_date).each{|p| periods[p[:name]] = p}
|
279
|
+
|
280
|
+
assert_equal '2009-05-15 00:00:00'.to_datetime, periods[:today][:von]
|
281
|
+
assert_equal '2009-05-15 23:59:59'.to_datetime, periods[:today][:bis]
|
282
|
+
|
283
|
+
assert_equal '2009-05-14 00:00:00'.to_datetime, periods[:day][:von]
|
284
|
+
assert_equal '2009-05-14 23:59:59'.to_datetime, periods[:day][:bis]
|
285
|
+
|
286
|
+
assert_equal '2009-05-08 00:00:00'.to_datetime, periods[:week][:von]
|
287
|
+
assert_equal '2009-05-14 23:59:59'.to_datetime, periods[:week][:bis]
|
288
|
+
|
289
|
+
assert_equal '2009-05-04 00:00:00'.to_datetime, periods[:calendar_week][:von]
|
290
|
+
assert_equal '2009-05-10 23:59:59'.to_datetime, periods[:calendar_week][:bis]
|
291
|
+
|
292
|
+
assert_equal '2009-04-14 00:00:00'.to_datetime, periods[:month][:von]
|
293
|
+
assert_equal '2009-05-14 23:59:59'.to_datetime, periods[:month][:bis]
|
294
|
+
|
295
|
+
assert_equal '2009-04-01 00:00:00'.to_datetime, periods[:calendar_month][:von]
|
296
|
+
assert_equal '2009-04-30 23:59:59'.to_datetime, periods[:calendar_month][:bis]
|
297
|
+
|
298
|
+
##
|
299
|
+
# ende monat - 31 tage
|
300
|
+
##
|
301
|
+
|
302
|
+
periods.clear
|
303
|
+
Reportme::ReportFactory.periods('2009-05-31'.to_date).each{|p| periods[p[:name]] = p}
|
304
|
+
|
305
|
+
assert_equal '2009-05-31 00:00:00'.to_datetime, periods[:today][:von]
|
306
|
+
assert_equal '2009-05-31 23:59:59'.to_datetime, periods[:today][:bis]
|
307
|
+
|
308
|
+
assert_equal '2009-05-30 00:00:00'.to_datetime, periods[:day][:von]
|
309
|
+
assert_equal '2009-05-30 23:59:59'.to_datetime, periods[:day][:bis]
|
310
|
+
|
311
|
+
assert_equal '2009-05-24 00:00:00'.to_datetime, periods[:week][:von]
|
312
|
+
assert_equal '2009-05-30 23:59:59'.to_datetime, periods[:week][:bis]
|
313
|
+
|
314
|
+
assert_equal '2009-05-18 00:00:00'.to_datetime, periods[:calendar_week][:von]
|
315
|
+
assert_equal '2009-05-24 23:59:59'.to_datetime, periods[:calendar_week][:bis]
|
316
|
+
|
317
|
+
assert_equal '2009-04-30 00:00:00'.to_datetime, periods[:month][:von]
|
318
|
+
assert_equal '2009-05-30 23:59:59'.to_datetime, periods[:month][:bis]
|
319
|
+
|
320
|
+
assert_equal '2009-04-01 00:00:00'.to_datetime, periods[:calendar_month][:von]
|
321
|
+
assert_equal '2009-04-30 23:59:59'.to_datetime, periods[:calendar_month][:bis]
|
322
|
+
|
323
|
+
|
324
|
+
end
|
325
|
+
|
326
|
+
should "create the calendar_weekly report by using 7 daily reports" do
|
327
|
+
|
328
|
+
today = '2009-06-24'
|
329
|
+
|
330
|
+
# should be ignored in weekly
|
331
|
+
exec("insert into visits values (null, 'sem', '#{today}');");
|
332
|
+
# should be ignored in weekly
|
333
|
+
exec("insert into visits values (null, 'sem', date_sub('#{today}', interval 1 day));");
|
334
|
+
# should be ignored in weekly
|
335
|
+
exec("insert into visits values (null, 'sem', date_sub('#{today}', interval 2 day));");
|
336
|
+
exec("insert into visits values (null, 'sem', date_sub('#{today}', interval 3 day));");
|
337
|
+
exec("insert into visits values (null, 'sem', date_sub('#{today}', interval 4 day));");
|
338
|
+
exec("insert into visits values (null, 'sem', date_sub('#{today}', interval 5 day));");
|
339
|
+
exec("insert into visits values (null, 'sem', date_sub('#{today}', interval 6 day));");
|
340
|
+
exec("insert into visits values (null, 'sem', date_sub('#{today}', interval 7 day));");
|
341
|
+
exec("insert into visits values (null, 'sem', date_sub('#{today}', interval 8 day));");
|
342
|
+
exec("insert into visits values (null, 'sem', date_sub('#{today}', interval 9 day));");
|
343
|
+
# should be ignored in weekly
|
344
|
+
exec("insert into visits values (null, 'sem', date_sub('#{today}', interval 10 day));");
|
345
|
+
|
346
|
+
create_visit_report_factory(:since => 15.days.ago, :periods => [:day]).run
|
347
|
+
|
348
|
+
exec("truncate visits;")
|
349
|
+
|
350
|
+
create_visit_report_factory(:periods => [:calendar_week]).run
|
351
|
+
|
352
|
+
assert_equal 7, one("select count(1) as cnt from visits_calendar_week where von between '2009-06-15 00:00:00' and '2009-06-21 00:00:00'")["cnt"].to_i
|
353
|
+
|
354
|
+
end
|
355
|
+
|
356
|
+
|
170
357
|
end
|
data/test/test_helper.rb
CHANGED
@@ -10,8 +10,8 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
|
|
10
10
|
class Test::Unit::TestCase
|
11
11
|
end
|
12
12
|
|
13
|
-
ActiveRecord::Base.establish_connection(:adapter => "mysql", :database => "
|
13
|
+
ActiveRecord::Base.establish_connection(:adapter => "mysql", :database => "report_me_test", :username => "root", :password => "root", :host => "localhost", :port => 3306)
|
14
14
|
|
15
|
-
ActiveRecord::Base.connection.execute "drop database if exists report_me_test;"
|
16
|
-
ActiveRecord::Base.connection.execute "create database report_me_test;"
|
17
|
-
ActiveRecord::Base.connection.execute "use report_me_test;"
|
15
|
+
# ActiveRecord::Base.connection.execute "drop database if exists report_me_test;"
|
16
|
+
# ActiveRecord::Base.connection.execute "create database report_me_test;"
|
17
|
+
# ActiveRecord::Base.connection.execute "use report_me_test;"
|