Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class BadgeType < Sequel::Model
- one_to_many :badge_rules
- many_to_one :badge_program
- many_to_one :badge_category
- one_to_many :badge_types_games
- ----
- more stuff here
- ----
- end
- class BadgeProgram < Sequel::Model
- one_to_many :badge_types
- def validate
- validates_presence :name
- end
- end
- mysql> describe badge_types;
- +------------------------------+--------------+------+-----+---------+----------------+
- | Field | Type | Null | Key | Default | Extra |
- +------------------------------+--------------+------+-----+---------+----------------+
- | id | int(11) | NO | PRI | NULL | auto_increment |
- | name | varchar(255) | YES | | NULL | |
- | short_name | varchar(255) | YES | | NULL | |
- | image | varchar(255) | YES | | NULL | |
- | description | varchar(255) | YES | | NULL | |
- | badge_program_id | int(11) | YES | MUL | NULL | |
- | badge_category_id | int(11) | YES | MUL | NULL | |
- | max_rewarded | int(11) | YES | | NULL | |
- | starts_at | datetime | YES | | NULL | |
- | units_of_progress | varchar(255) | YES | | NULL | |
- | active | tinyint(1) | YES | | 1 | |
- | rewarded_count | int(11) | YES | | 0 | |
- | goal | text | YES | | NULL | |
- | key | text | YES | | NULL | |
- | game_feed_id | int(11) | YES | | NULL | |
- | manual | int(11) | YES | | 0 | |
- | details | text | YES | | NULL | |
- | rewards | text | YES | | NULL | |
- | large_image | varchar(255) | YES | | NULL | |
- | starts_taking_submissions_at | datetime | YES | | NULL | |
- | ends_at | datetime | YES | | NULL | |
- +------------------------------+--------------+------+-----+---------+----------------+
- 21 rows in set (0.00 sec)
- mysql> describe badge_types;
- +------------------------------+--------------+------+-----+---------+----------------+
- | Field | Type | Null | Key | Default | Extra |
- +------------------------------+--------------+------+-----+---------+----------------+
- | id | int(11) | NO | PRI | NULL | auto_increment |
- | name | varchar(255) | YES | | NULL | |
- | short_name | varchar(255) | YES | | NULL | |
- | image | varchar(255) | YES | | NULL | |
- | description | varchar(255) | YES | | NULL | |
- | badge_program_id | int(11) | YES | MUL | NULL | |
- | badge_category_id | int(11) | YES | MUL | NULL | |
- | max_rewarded | int(11) | YES | | NULL | |
- | starts_at | datetime | YES | | NULL | |
- | units_of_progress | varchar(255) | YES | | NULL | |
- | active | tinyint(1) | YES | | 1 | |
- | rewarded_count | int(11) | YES | | 0 | |
- | goal | text | YES | | NULL | |
- | key | text | YES | | NULL | |
- | game_feed_id | int(11) | YES | | NULL | |
- | manual | int(11) | YES | | 0 | |
- | details | text | YES | | NULL | |
- | rewards | text | YES | | NULL | |
- | large_image | varchar(255) | YES | | NULL | |
- | starts_taking_submissions_at | datetime | YES | | NULL | |
- | ends_at | datetime | YES | | NULL | |
- +------------------------------+--------------+------+-----+---------+----------------+
- 21 rows in set (0.00 sec)
- bt = BadgeType.create(:name => 'badge1')
- INFO - [28/Jun/2011 14:05:08] "(0.051918s) INSERT INTO `badge_types` (`name`) VALUES ('badge1')"
- => #<BadgeType @values={:name=>"badge1", :id=>33}>
- bp = BadgeProgram.create(:name => 'program1')
- INFO - [28/Jun/2011 14:03:54] "(0.050462s) INSERT INTO `badge_programs` (`name`) VALUES ('program1')"
- => #<BadgeProgram @values={:name=>"program1", :id=>49}>
- dgeType @values={:name=>"badge1", :id=>33}>
- bp.add_badge_type bt
- INFO - [28/Jun/2011 14:05:14] "(0.049666s) UPDATE `badge_types` SET `badge_program_id` = 50, `name` = 'badge1' WHERE (`id` = 33) LIMIT 1"
- INFO - [28/Jun/2011 14:05:14] "(0.000793s) SELECT * FROM `badge_types` WHERE (`id` = 33) LIMIT 1"
- ERROR - [28/Jun/2011 14:05:14] "Mysql::Error: Cannot add or update a child row: a foreign key constraint fails (`respawn_db`.`badge_types`, CONSTRAINT `badge_types_ibfk_1` FOREIGN KEY (`badge_program_id`) REFERENCES `badge_programs` (`id`)): UPDATE `badge_types` SET `badge_program_id` = 50, `name` = 'badge1' WHERE (`id` = 33)"
- Sequel::DatabaseError: Mysql::Error: Cannot add or update a child row: a foreign key constraint fails (`respawn_db`.`badge_types`, CONSTRAINT `badge_types_ibfk_1` FOREIGN KEY (`badge_program_id`) REFERENCES `badge_programs` (`id`))
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/adapters/mysql.rb:200:in `query'
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/adapters/mysql.rb:200:in `_execute'
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/database/logging.rb:32:in `log_yield'
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/adapters/mysql.rb:200:in `_execute'
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/adapters/mysql.rb:184:in `execute'
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/connection_pool/threaded.rb:84:in `hold'
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/database/connecting.rb:226:in `synchronize'
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/adapters/mysql.rb:184:in `execute'
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/database/query.rb:71:in `execute_dui'
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/dataset/actions.rb:552:in `execute_dui'
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/adapters/mysql.rb:445:in `execute_dui'
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/adapters/mysql.rb:433:in `update'
- from /home/oren/repos/respawnproject/respawnsv00/badge_service/../../respawncore/lib/respawncore/../../shared_libs/DBUtils/sync.rb:25:in `sync_model'
- from /home/oren/repos/respawnproject/respawnsv00/badge_service/app/models/badge_type_observer.rb:3:in `after_update'
- from /home/oren/repos/respawnproject/respawnsv00/badge_service/../../respawncore/lib/respawncore/../../shared_libs/extensions/sequel/sequel_observer.rb:48:in `send'
- from /home/oren/repos/respawnproject/respawnsv00/badge_service/../../respawncore/lib/respawncore/../../shared_libs/extensions/sequel/sequel_observer.rb:48:in `after_update'
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/model/base.rb:1290:in `_save'
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/model/base.rb:1040:in `save'
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/model/base.rb:1353:in `checked_transaction'
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/model/base.rb:1040:in `save'
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/model/base.rb:1344:in `checked_save_failure'
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/model/base.rb:1040:in `save'
- from /home/oren/repos/respawnproject/respawnsv00/badge_service/../../respawncore/lib/respawncore/../../shared_libs/extensions/sequel/model.rb:92:in `save'
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/model/associations.rb:970:in `_add_badge_type'
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/model/associations.rb:1078:in `send'
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/model/associations.rb:1078:in `add_associated_object'
- from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/model/associations.rb:743:in `add_badge_type'
- from (irb):14ruby-1.8.7-p72 :015 >
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement