A
Anders Nguyen
Trying to populate a database with some users using rake db
opulate.
But im getting this error trace:
** Invoke db
opulate (first_time)
** Invoke db
opulate:accounts (first_time)
** Invoke db
opulate:setup (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db
opulate:setup
** Execute db
opulate:accounts
[populate] accounts
rake aborted!
Validation failed: Logo failed to be processed.
/home/andersnguyen/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_recor=
d/validations.rb:1090:in
`save_without_dirty!'
/home/andersnguyen/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_recor=
d/dirty.rb:87:in
`save_without_transactions!'
/home/andersnguyen/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_recor=
d/transactions.rb:200:in
`save!'
/home/andersnguyen/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_recor=
d/connection_adapters/abstract/database_statements.rb:136:in
`transaction'
/home/andersnguyen/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_recor=
d/transactions.rb:182:in
`transaction'
/home/andersnguyen/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_recor=
d/transactions.rb:200:in
`save!'
/home/andersnguyen/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_recor=
d/transactions.rb:208:in
`rollback_active_record_state!'
/home/andersnguyen/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_recor=
d/transactions.rb:200:in
`save!'
/usr/lib/ruby/gems/1.8/gems/machinist-1.0.6/lib/machinist/active_record.r=
b:55:in
`make'
/home/andersnguyen/rubyprojects/mediapilot/lib/tasks/populate.rake:35
/usr/lib/ruby/1.8/rake.rb:636:in `call'
/usr/lib/ruby/1.8/rake.rb:636:in `execute'
/usr/lib/ruby/1.8/rake.rb:631:in `each'
/usr/lib/ruby/1.8/rake.rb:631:in `execute'
/usr/lib/ruby/1.8/rake.rb:597:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/lib/ruby/1.8/rake.rb:590:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/rake.rb:607:in `invoke_prerequisites'
/usr/lib/ruby/1.8/rake.rb:604:in `each'
/usr/lib/ruby/1.8/rake.rb:604:in `invoke_prerequisites'
/usr/lib/ruby/1.8/rake.rb:596:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/lib/ruby/1.8/rake.rb:590:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/rake.rb:583:in `invoke'
/usr/lib/ruby/1.8/rake.rb:2051:in `invoke_task'
/usr/lib/ruby/1.8/rake.rb:2029:in `top_level'
/usr/lib/ruby/1.8/rake.rb:2029:in `each'
/usr/lib/ruby/1.8/rake.rb:2029:in `top_level'
/usr/lib/ruby/1.8/rake.rb:2068:in `standard_exception_handling'
/usr/lib/ruby/1.8/rake.rb:2023:in `top_level'
/usr/lib/ruby/1.8/rake.rb:2001:in `run'
/usr/lib/ruby/1.8/rake.rb:2068:in `standard_exception_handling'
/usr/lib/ruby/1.8/rake.rb:1998:in `run'
/usr/bin/rake:28
here is the populate.db file:
# encoding: utf-8
class Range
def random
rand(last - first + 1) + first
end
end
namespace :db do
desc "Erase and fill database"
task
opulate =3D> [
'db
opulate:accounts',
'db
opulate:users',
'db
opulate:memberships',
'db
opulate:feeds',
'db
opulate:events',
'db
opulate:sources',
'db
opulate:editorials',
'db
opulate:social_posts',
'db
opulate:variables',
'db
opulate:statistics',
'feed:retrieve'
]
namespace
opulate do
task :setup =3D> :environment do
require File.join(Rails.root, 'spec', 'blueprints')
end
task :accounts =3D> 'db
opulate:setup' do
puts "[populate] accounts"
Account.delete_all
Account.make
name =3D> 'SJ', :logo =3D>
File.open(Rails.root.join('features/fixtures/logo-sj.png')))
Account.make
name =3D> 'Telia', :logo =3D>
File.open(Rails.root.join('features/fixtures/logo-telia.png')))
Account.make
name =3D> 'Stena Line', :logo =3D>
File.open(Rails.root.join('features/fixtures/logo-stena.png')))
Account.make
name =3D> 'Max', :logo =3D>
File.open(Rails.root.join('features/fixtures/logo-max.png')))
Account.make
name =3D> 'Coop', :logo =3D>
File.open(Rails.root.join('features/fixtures/logo-coop.png')))
end
task :users =3D> 'db
opulate:setup' do
puts "[populate] users"
User.delete_all
User.make
password =3D> 'test1234', :email =3D> "(e-mail address removed)",
:role =3D> 'admin', :locale =3D> "en")
User.make
password =3D> 'test1234', :email =3D> "(e-mail address removed)"=
,
:role =3D> 'analyst', :locale =3D> "en")
User.make
password =3D> 'test1234', :email =3D> "(e-mail address removed)=
",
:role =3D> 'customer', :locale =3D> "en")
User.make
password =3D> 'test1234', :email =3D> "(e-mail address removed)"=
,
:role =3D> 'admin', :locale =3D> "sv")
12.times { User.make
role =3D> (User::ROLES - ['Admin']).rand) }
end
task :memberships =3D> 'db
opulate:setup' do
puts "[populate] memberships"
Membership.delete_all
User.find
all, :conditions =3D> "role !=3D 'Admin'").each do | user=
|
if user.customer?
user.accounts << Account.random
else
(1..4).random.times { user.accounts << Account.random }
end
end
end
task :sources =3D> 'db
opulate:setup' do
puts "[populate] sources"
Source.delete_all
Source.make
name =3D> 'Aftonbladet', :circulation =3D> 1_232_432,
:category =3D> 'popular')
Source.make
name =3D> 'DN', :circulation =3D> 1_632_653, :category=
=3D>
'large_city')
Source.make
name =3D> 'Expressen', :circulation =3D> 823_583,
:category =3D> 'popular')
Source.make
name =3D> 'G=C3=B6teborgs-Posten', :circulation =3D> 4=
42_556,
:category =3D> 'large_city')
Source.make
name =3D> 'Sydsvenska Dagbladet', :circulation =3D>
350_834, :category =3D> 'local')
Source.make
name =3D> 'Dagens Industri', :circulation =3D> 2_342_3=
42,
:category =3D> 'trade')
Source.make
name =3D> 'Engadget', :circulation =3D> 7_234_618,
:category =3D> 'trade')
Source.make
name =3D> 'Tech Crunch', :circulation =3D> 13_546_245,=
:category =3D> 'trade')
Source.make
name =3D> 'Wired', :circulation =3D> 1_350_000, :categ=
ory
=3D> 'trade')
end
task :feeds =3D> 'db
opulate:setup' do
puts "[populate] feeds"
Feed.delete_all
Account.all.each do | account |
[
['http://www.dn.se/m/rss/toppnyheter', "DN.se toppnyheter"],
['http://www.gp.se/1.16943', 'G=C3=B6teborgsposten'],
['http://www.aftonbladet.se/sportbladet/rss.xml', 'Aftonbladet
sportnyheter'],
['http://www.sr.se/rssfeed/rssfeed.aspx?rssfeed=3D83&format=3D1=
',
'Sveriges Radio EKOT']
].each do | url, name |
account.feeds.make
name =3D> name, :url =3D> url, :category =3D='editorial')
end
[
['http://twitter.com/statuses/user_timeline/17023971.rss',
"eLabs on Twitter", false],
['http://twitter.com/statuses/user_timeline/23775395.rss',
'MediaPilot on Twitter', false],
['http://friendfeed.com/cjkihlbom?format=3Datom', 'CJ Kihlbom o=
n
FriendFeed', true],
['http://feeds.digg.com/digg/upcoming.rss', 'Fresh stuff on
Digg', true]
].each do | url, name, preview |
account.feeds.make
name =3D> name, :url =3D> url, :category =3D='social',
review =3D> preview)
end
end
end
task :events =3D> 'db
opulate:setup' do
puts "[populate] events"
Event.delete_all
Account.all.each do | account |
(10..15).random.times { Event.make
account =3D> account) }
end
end
task :editorials =3D> 'db
opulate:setup' do
puts "[populate] editorials"
Editorial.delete_all
Account.all.each do | account |
(60..100).random.times { Editorial.make
printed, :account =3D>
account, :event =3D> account.events.random, :source =3D> Source.random) }=
account.editorial_feed_items.each do | item |
Editorial.make
web, :account =3D> account, :feed_item =3D> ite=
m,
:url =3D> item.url, :headline =3D> item.title, :event =3D>
account.events.random, :source =3D> Source.random) if(rand(2).zero?)
end
end
end
task :social_posts =3D> 'db
opulate:setup' do
puts "[populate] social_posts"
SocialPost.delete_all
Account.all.each do | account |
account.social_feed_items.each do | item |
SocialPost.make
account =3D> account, :feed_item =3D> item,
:headline =3D> item.title) if(rand(2).zero?)
end
end
end
task :variables =3D> 'db
opulate:setup' do
puts "[populate] custom variables"
Variable.delete_all
VariableOption.delete_all
EditorialVariableOption.delete_all
SocialPostVariableOption.delete_all
Account.all.each do | account |
products =3D account.variables.make
name =3D> 'Products',
:multiple_choice =3D> true, :category =3D> 'editorial')
%w(Fanta Sprite Cola).each do | option_name |
products.options.make
name =3D> option_name)
end
flavors =3D account.variables.make
name =3D> 'Flavors',
:multiple_choice =3D> false, :category =3D> 'editorial')
%w(Sweet Sour Bitter Salty).each do | option_name |
flavors.options.make
name =3D> option_name)
end
sugar_content =3D account.variables.make
name =3D> 'Sugar Conten=
t',
:multiple_choice =3D> false, :category =3D> 'social')
%w(Diabetes High Medium Low).each do | option_name |
sugar_content.options.make
name =3D> option_name)
end
product_options =3D products.options
flavor_options =3D flavors.options
account.editorials.each do | editorial |
editorial.variable_options.push(*product_options.shuffle[0,rand=
(4)])
editorial.variable_options.push(flavor_options.rand)
end
sugar_content_options =3D sugar_content.options
account.social_posts.each do | social_post |
social_post.variable_options.push(sugar_content_options.rand)
end
end
end
task :statistics =3D> 'db
opulate:setup' do
puts '[populate] statistics'
Statistic.delete_all
Account.all.each do | account |
account.statistics.make
pie, :category =3D> 'editorial', :name =3D='Favorability Overview', :group_parameter_one_type =3D> 'favorability')
account.statistics.make
bar, :category =3D> 'editorial', :name =3D='Media types', :group_parameter_one_type =3D> 'medium',
:group_parameter_two_type =3D> nil)
sugar_content =3D account.variables.find_by_name('Sugar Content')=
account.statistics.make
bar, :category =3D> 'social', :name =3D>=
'Sugar content per favorability', :group_parameter_one_type =3D>
"variable_#{sugar_content.id}", :group_parameter_two_type =3D>
'favorability')
account.statistics.make
line, :category =3D> 'social', :name =3D='Development of Comments', :group_parameter_one_type =3D> 'time_months',
:group_parameter_two_type =3D> 'comments')
end
end
end
end
-- =
Posted via http://www.ruby-forum.com/.=
But im getting this error trace:
** Invoke db
** Invoke db
** Invoke db
** Invoke environment (first_time)
** Execute environment
** Execute db
** Execute db
[populate] accounts
rake aborted!
Validation failed: Logo failed to be processed.
/home/andersnguyen/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_recor=
d/validations.rb:1090:in
`save_without_dirty!'
/home/andersnguyen/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_recor=
d/dirty.rb:87:in
`save_without_transactions!'
/home/andersnguyen/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_recor=
d/transactions.rb:200:in
`save!'
/home/andersnguyen/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_recor=
d/connection_adapters/abstract/database_statements.rb:136:in
`transaction'
/home/andersnguyen/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_recor=
d/transactions.rb:182:in
`transaction'
/home/andersnguyen/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_recor=
d/transactions.rb:200:in
`save!'
/home/andersnguyen/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_recor=
d/transactions.rb:208:in
`rollback_active_record_state!'
/home/andersnguyen/.gem/ruby/1.8/gems/activerecord-2.3.5/lib/active_recor=
d/transactions.rb:200:in
`save!'
/usr/lib/ruby/gems/1.8/gems/machinist-1.0.6/lib/machinist/active_record.r=
b:55:in
`make'
/home/andersnguyen/rubyprojects/mediapilot/lib/tasks/populate.rake:35
/usr/lib/ruby/1.8/rake.rb:636:in `call'
/usr/lib/ruby/1.8/rake.rb:636:in `execute'
/usr/lib/ruby/1.8/rake.rb:631:in `each'
/usr/lib/ruby/1.8/rake.rb:631:in `execute'
/usr/lib/ruby/1.8/rake.rb:597:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/lib/ruby/1.8/rake.rb:590:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/rake.rb:607:in `invoke_prerequisites'
/usr/lib/ruby/1.8/rake.rb:604:in `each'
/usr/lib/ruby/1.8/rake.rb:604:in `invoke_prerequisites'
/usr/lib/ruby/1.8/rake.rb:596:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/lib/ruby/1.8/rake.rb:590:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/rake.rb:583:in `invoke'
/usr/lib/ruby/1.8/rake.rb:2051:in `invoke_task'
/usr/lib/ruby/1.8/rake.rb:2029:in `top_level'
/usr/lib/ruby/1.8/rake.rb:2029:in `each'
/usr/lib/ruby/1.8/rake.rb:2029:in `top_level'
/usr/lib/ruby/1.8/rake.rb:2068:in `standard_exception_handling'
/usr/lib/ruby/1.8/rake.rb:2023:in `top_level'
/usr/lib/ruby/1.8/rake.rb:2001:in `run'
/usr/lib/ruby/1.8/rake.rb:2068:in `standard_exception_handling'
/usr/lib/ruby/1.8/rake.rb:1998:in `run'
/usr/bin/rake:28
here is the populate.db file:
# encoding: utf-8
class Range
def random
rand(last - first + 1) + first
end
end
namespace :db do
desc "Erase and fill database"
task
'db
'db
'db
'db
'db
'db
'db
'db
'db
'db
'feed:retrieve'
]
namespace
task :setup =3D> :environment do
require File.join(Rails.root, 'spec', 'blueprints')
end
task :accounts =3D> 'db
puts "[populate] accounts"
Account.delete_all
Account.make
File.open(Rails.root.join('features/fixtures/logo-sj.png')))
Account.make
File.open(Rails.root.join('features/fixtures/logo-telia.png')))
Account.make
File.open(Rails.root.join('features/fixtures/logo-stena.png')))
Account.make
File.open(Rails.root.join('features/fixtures/logo-max.png')))
Account.make
File.open(Rails.root.join('features/fixtures/logo-coop.png')))
end
task :users =3D> 'db
puts "[populate] users"
User.delete_all
User.make
:role =3D> 'admin', :locale =3D> "en")
User.make
,
:role =3D> 'analyst', :locale =3D> "en")
User.make
",
:role =3D> 'customer', :locale =3D> "en")
User.make
,
:role =3D> 'admin', :locale =3D> "sv")
12.times { User.make
end
task :memberships =3D> 'db
puts "[populate] memberships"
Membership.delete_all
User.find
|
if user.customer?
user.accounts << Account.random
else
(1..4).random.times { user.accounts << Account.random }
end
end
end
task :sources =3D> 'db
puts "[populate] sources"
Source.delete_all
Source.make
:category =3D> 'popular')
Source.make
=3D>
'large_city')
Source.make
:category =3D> 'popular')
Source.make
42_556,
:category =3D> 'large_city')
Source.make
350_834, :category =3D> 'local')
Source.make
42,
:category =3D> 'trade')
Source.make
:category =3D> 'trade')
Source.make
:category =3D> 'trade')
Source.make
ory
=3D> 'trade')
end
task :feeds =3D> 'db
puts "[populate] feeds"
Feed.delete_all
Account.all.each do | account |
[
['http://www.dn.se/m/rss/toppnyheter', "DN.se toppnyheter"],
['http://www.gp.se/1.16943', 'G=C3=B6teborgsposten'],
['http://www.aftonbladet.se/sportbladet/rss.xml', 'Aftonbladet
sportnyheter'],
['http://www.sr.se/rssfeed/rssfeed.aspx?rssfeed=3D83&format=3D1=
',
'Sveriges Radio EKOT']
].each do | url, name |
account.feeds.make
end
[
['http://twitter.com/statuses/user_timeline/17023971.rss',
"eLabs on Twitter", false],
['http://twitter.com/statuses/user_timeline/23775395.rss',
'MediaPilot on Twitter', false],
['http://friendfeed.com/cjkihlbom?format=3Datom', 'CJ Kihlbom o=
n
FriendFeed', true],
['http://feeds.digg.com/digg/upcoming.rss', 'Fresh stuff on
Digg', true]
].each do | url, name, preview |
account.feeds.make
end
end
end
task :events =3D> 'db
puts "[populate] events"
Event.delete_all
Account.all.each do | account |
(10..15).random.times { Event.make
end
end
task :editorials =3D> 'db
puts "[populate] editorials"
Editorial.delete_all
Account.all.each do | account |
(60..100).random.times { Editorial.make
account, :event =3D> account.events.random, :source =3D> Source.random) }=
account.editorial_feed_items.each do | item |
Editorial.make
m,
:url =3D> item.url, :headline =3D> item.title, :event =3D>
account.events.random, :source =3D> Source.random) if(rand(2).zero?)
end
end
end
task :social_posts =3D> 'db
puts "[populate] social_posts"
SocialPost.delete_all
Account.all.each do | account |
account.social_feed_items.each do | item |
SocialPost.make
:headline =3D> item.title) if(rand(2).zero?)
end
end
end
task :variables =3D> 'db
puts "[populate] custom variables"
Variable.delete_all
VariableOption.delete_all
EditorialVariableOption.delete_all
SocialPostVariableOption.delete_all
Account.all.each do | account |
products =3D account.variables.make
:multiple_choice =3D> true, :category =3D> 'editorial')
%w(Fanta Sprite Cola).each do | option_name |
products.options.make
end
flavors =3D account.variables.make
:multiple_choice =3D> false, :category =3D> 'editorial')
%w(Sweet Sour Bitter Salty).each do | option_name |
flavors.options.make
end
sugar_content =3D account.variables.make
t',
:multiple_choice =3D> false, :category =3D> 'social')
%w(Diabetes High Medium Low).each do | option_name |
sugar_content.options.make
end
product_options =3D products.options
flavor_options =3D flavors.options
account.editorials.each do | editorial |
editorial.variable_options.push(*product_options.shuffle[0,rand=
(4)])
editorial.variable_options.push(flavor_options.rand)
end
sugar_content_options =3D sugar_content.options
account.social_posts.each do | social_post |
social_post.variable_options.push(sugar_content_options.rand)
end
end
end
task :statistics =3D> 'db
puts '[populate] statistics'
Statistic.delete_all
Account.all.each do | account |
account.statistics.make
account.statistics.make
:group_parameter_two_type =3D> nil)
sugar_content =3D account.variables.find_by_name('Sugar Content')=
account.statistics.make
'Sugar content per favorability', :group_parameter_one_type =3D>
"variable_#{sugar_content.id}", :group_parameter_two_type =3D>
'favorability')
account.statistics.make
:group_parameter_two_type =3D> 'comments')
end
end
end
end
-- =
Posted via http://www.ruby-forum.com/.=