From e6e9bc5c03b16b1f68881e451ee1842308dcb2b2 Mon Sep 17 00:00:00 2001 From: mo khan Date: Thu, 26 Jan 2017 21:52:28 -0700 Subject: choose random computer/business. --- Rakefile | 2 ++ db/seeds.rb | 49 +++++++++++++++++++++++++++---------------------- 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/Rakefile b/Rakefile index a681d14..14eb42e 100644 --- a/Rakefile +++ b/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) diff --git a/db/seeds.rb b/db/seeds.rb index ab3aa69..55d5ad8 100644 --- a/db/seeds.rb +++ b/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 -- cgit v1.2.3