mirror of https://github.com/fspc/bikeshed.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
2.1 KiB
59 lines
2.1 KiB
# This file should contain all the record creation needed to seed the database with its default values.
|
|
# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
|
|
#
|
|
# Examples:
|
|
#
|
|
# cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
|
|
# Mayor.create(name: 'Emanuel', city: cities.first)
|
|
require 'active_record/fixtures'
|
|
|
|
#Load defaults from db/seed/fixtures
|
|
Dir.glob(File.join(Rails.root, 'db', 'seed', 'fixtures', '**', '*.{yml,csv}')).each do |fixture_file, something|
|
|
ActiveRecord::Fixtures.create_fixtures(File.dirname(fixture_file), File.basename(fixture_file, '.*'))
|
|
end
|
|
|
|
#Load bike brands and models from sql
|
|
if BikeBrand.all.empty? and BikeModel.all.empty?
|
|
# Need to use DEFAULT instead of explicit IDs that are used in the sql file,
|
|
# so that the PG table ID sequence is incremented
|
|
#
|
|
# Note the drop(1) which assumes we have a junk PRAGMA line at the top
|
|
load_statements = File.readlines(File.join(Rails.root, 'db', 'seed', 'sql', 'bike_brands_and_models.sql')).drop(1).map do |statement|
|
|
statement.sub(/VALUES\(\d+,/, 'VALUES(DEFAULT,')
|
|
end
|
|
ActiveRecord::Base.connection.execute(load_statements.join)
|
|
end
|
|
|
|
if Rails.env.development?
|
|
|
|
#create default users
|
|
if User.all.empty?
|
|
u = FactoryGirl.create(:user)
|
|
FactoryGirl.create(:user_profile, user_id: u.id)
|
|
u = FactoryGirl.create(:staff)
|
|
FactoryGirl.create(:user_profile, user_id: u.id)
|
|
u = FactoryGirl.create(:bike_admin)
|
|
FactoryGirl.create(:user_profile, user_id: u.id)
|
|
u = FactoryGirl.create(:admin)
|
|
FactoryGirl.create(:user_profile, user_id: u.id)
|
|
end
|
|
|
|
#create fake bikes
|
|
if Bike.all.empty?
|
|
42.times do |n|
|
|
# FactoryGirl.create(:seed_bike)
|
|
end
|
|
end
|
|
elsif Rails.env.production?
|
|
|
|
unless User.find_by_username('admin')
|
|
#create an admin
|
|
admin = User.create!( :username => 'admin',
|
|
:first_name => 'admin',
|
|
:last_name => 'admin',
|
|
:email=>'admin@example.com',
|
|
:password=>'password')
|
|
admin.roles << Role.find_by_role('admin')
|
|
end
|
|
|
|
end
|
|
|