Commit e6e9bc5

mo khan <mo@mokhan.ca>
2017-01-27 04:52:28
choose random computer/business.
1 parent c2b7115
Changed files (2)
db/seeds.rb
@@ -11,25 +11,9 @@ class Seeds
   end
 
   def run
-    10.times do
-      background_thread do
-        rand(100).times do
-          rand(50).times do
-            puts "creating"
-            database[:events].insert(
-              computer_id: create_computer(business_id: create_business(name: FFaker::Company.name)),
-              occurred_at: DateTime.parse(FFaker::Time.datetime),
-              type: event_types.sample,
-              data: JSON.generate({
-                ip_address: FFaker::Internet.ip_v4_address,
-                mac: FFaker::Internet.mac,
-                url: FFaker::Internet.http_url,
-              })
-            )
-          end
-        end
-      end
-    end
+    100.times { create_business }
+    10_000.times { create_computer }
+    25_000.times { create_event }
   ensure
     @threads.map(&:join)
   end
@@ -40,11 +24,32 @@ class Seeds
     @threads << Thread.new(&block)
   end
 
-  def create_computer(active: rand(100).even?, business_id:)
-    database[:computers].insert(active: active, business_id: business_id)
+  def create_computer(active: rand(100).even?, business: random_business)
+    database[:computers].insert(active: active, business_id: business[:id])
   end
 
-  def create_business(name:)
+  def create_business(name: FFaker::Company.name)
     database[:businesses].insert(name: name, business_relationship_id: rand(3))
   end
+
+  def create_event(computer: random_computer)
+    database[:events].insert(
+      computer_id: computer[:id],
+      occurred_at: DateTime.parse(FFaker::Time.datetime),
+      type: event_types.sample,
+      data: JSON.generate({
+        ip_address: FFaker::Internet.ip_v4_address,
+        mac: FFaker::Internet.mac,
+        url: FFaker::Internet.http_url,
+      })
+    )
+  end
+
+  def random_business
+    database[:businesses].limit(1).offset(rand(database[:businesses].count)).first
+  end
+
+  def random_computer
+    database[:computers].limit(1).offset(rand(database[:computers].count)).first
+  end
 end
Rakefile
@@ -1,9 +1,11 @@
 require 'rubygems'
 require 'bundler'
+require 'logger'
 Bundler.require(:default)
 
 DATABASE_NAME = 'sql_bootcamp'
 DATABASE = Sequel.connect("mysql2://root@localhost/#{DATABASE_NAME}")
+DATABASE.loggers << Logger.new($stdout)
 
 namespace :db do
   def pipe_to_mysql(command)