diff options
| author | mo khan <mo@mokhan.ca> | 2017-01-25 17:51:24 -0700 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2017-01-25 17:51:24 -0700 |
| commit | 8ec14688124a4e3f65d916301f6994a26cfc324a (patch) | |
| tree | f58978584db3dc79bdd0d074063ae56eea8de6f4 | |
| parent | c9ef265c99611ac0a49bfd4541684e5af968ac5f (diff) | |
generate seed data.
| -rw-r--r-- | Gemfile | 1 | ||||
| -rw-r--r-- | Gemfile.lock | 2 | ||||
| -rw-r--r-- | Rakefile | 13 | ||||
| -rw-r--r-- | db/seeds.rb | 23 |
4 files changed, 34 insertions, 5 deletions
@@ -1,6 +1,7 @@ # frozen_string_literal: true source "https://rubygems.org" +gem 'ffaker' gem 'mysql2' gem 'rake' gem 'sequel' diff --git a/Gemfile.lock b/Gemfile.lock index 3b0a47b..3808837 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,6 +1,7 @@ GEM remote: https://rubygems.org/ specs: + ffaker (2.4.0) mysql2 (0.4.5) rake (12.0.0) sequel (4.42.1) @@ -9,6 +10,7 @@ PLATFORMS ruby DEPENDENCIES + ffaker mysql2 rake sequel @@ -3,6 +3,7 @@ require 'bundler' Bundler.require(:default) DATABASE_NAME = 'sql_bootcamp' +DATABASE = Sequel.connect("mysql2://root@localhost/#{DATABASE_NAME}") #| BUSINESSES | | COMPUTERS | | EVENTS | | #| id | int | id | int | id | int | @@ -29,18 +30,20 @@ namespace :db do desc "Run migrations" task :migrate, [:version] do |t, args| Sequel.extension :migration - db = Sequel.connect("mysql2://root@localhost/#{DATABASE_NAME}") if args[:version] puts "Migrating to version #{args[:version]}" - Sequel::Migrator.run(db, "db/migrations", target: args[:version].to_i) + Sequel::Migrator.run(DATABASE, "db/migrations", target: args[:version].to_i) else puts "Migrating to latest" - Sequel::Migrator.run(db, "db/migrations") + Sequel::Migrator.run(DATABASE, "db/migrations") end end - task :reset => [:drop, :create, :migrate] do - + task :seed do + require_relative 'db/seeds.rb' end + + desc "drop, create and migrate the database" + task :reset => [:drop, :create, :migrate, :seed] end diff --git a/db/seeds.rb b/db/seeds.rb new file mode 100644 index 0000000..1127ae7 --- /dev/null +++ b/db/seeds.rb @@ -0,0 +1,23 @@ +require 'json' + +businesses = DATABASE[:businesses] +computers = DATABASE[:computers] +events = DATABASE[:events] +event_types = (1..5).to_a + +10.times do + business_id = businesses.insert(name: FFaker::Company.name, business_relationship_id: rand(3)) + + 10.times do + computer_id = computers.insert(active: rand(100).even?, business_id: business_id) + + 10.times do + data = JSON.generate({ + ip_address: FFaker::Internet.ip_v4_address, + mac: FFaker::Internet.mac, + url: FFaker::Internet.http_url, + }) + events.insert(computer_id: computer_id, occurred_at: DateTime.parse(FFaker::Time.datetime), type: event_types.sample, data: data) + end + end +end |
