Advertisement
Guest User

Untitled

a guest
Sep 20th, 2017
447
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 9.49 KB | None | 0 0
  1. class BadgeType < Sequel::Model
  2.   one_to_many :badge_rules
  3.   many_to_one :badge_program
  4.   many_to_one :badge_category
  5.   one_to_many :badge_types_games
  6.  
  7.  
  8.   ----
  9.   more stuff here
  10.   ----
  11. end
  12.  
  13.  
  14. class BadgeProgram < Sequel::Model
  15.   one_to_many :badge_types
  16.  
  17.   def validate
  18.     validates_presence :name
  19.   end
  20. end
  21.  
  22.  
  23. mysql> describe badge_types;
  24. +------------------------------+--------------+------+-----+---------+----------------+
  25. | Field                        | Type         | Null | Key | Default | Extra          |
  26. +------------------------------+--------------+------+-----+---------+----------------+
  27. | id                           | int(11)      | NO   | PRI | NULL    | auto_increment |
  28. | name                         | varchar(255) | YES  |     | NULL    |                |
  29. | short_name                   | varchar(255) | YES  |     | NULL    |                |
  30. | image                        | varchar(255) | YES  |     | NULL    |                |
  31. | description                  | varchar(255) | YES  |     | NULL    |                |
  32. | badge_program_id             | int(11)      | YES  | MUL | NULL    |                |
  33. | badge_category_id            | int(11)      | YES  | MUL | NULL    |                |
  34. | max_rewarded                 | int(11)      | YES  |     | NULL    |                |
  35. | starts_at                    | datetime     | YES  |     | NULL    |                |
  36. | units_of_progress            | varchar(255) | YES  |     | NULL    |                |
  37. | active                       | tinyint(1)   | YES  |     | 1       |                |
  38. | rewarded_count               | int(11)      | YES  |     | 0       |                |
  39. | goal                         | text         | YES  |     | NULL    |                |
  40. | key                          | text         | YES  |     | NULL    |                |
  41. | game_feed_id                 | int(11)      | YES  |     | NULL    |                |
  42. | manual                       | int(11)      | YES  |     | 0       |                |
  43. | details                      | text         | YES  |     | NULL    |                |
  44. | rewards                      | text         | YES  |     | NULL    |                |
  45. | large_image                  | varchar(255) | YES  |     | NULL    |                |
  46. | starts_taking_submissions_at | datetime     | YES  |     | NULL    |                |
  47. | ends_at                      | datetime     | YES  |     | NULL    |                |
  48. +------------------------------+--------------+------+-----+---------+----------------+
  49. 21 rows in set (0.00 sec)
  50.  
  51. mysql> describe badge_types;
  52. +------------------------------+--------------+------+-----+---------+----------------+
  53. | Field                        | Type         | Null | Key | Default | Extra          |
  54. +------------------------------+--------------+------+-----+---------+----------------+
  55. | id                           | int(11)      | NO   | PRI | NULL    | auto_increment |
  56. | name                         | varchar(255) | YES  |     | NULL    |                |
  57. | short_name                   | varchar(255) | YES  |     | NULL    |                |
  58. | image                        | varchar(255) | YES  |     | NULL    |                |
  59. | description                  | varchar(255) | YES  |     | NULL    |                |
  60. | badge_program_id             | int(11)      | YES  | MUL | NULL    |                |
  61. | badge_category_id            | int(11)      | YES  | MUL | NULL    |                |
  62. | max_rewarded                 | int(11)      | YES  |     | NULL    |                |
  63. | starts_at                    | datetime     | YES  |     | NULL    |                |
  64. | units_of_progress            | varchar(255) | YES  |     | NULL    |                |
  65. | active                       | tinyint(1)   | YES  |     | 1       |                |
  66. | rewarded_count               | int(11)      | YES  |     | 0       |                |
  67. | goal                         | text         | YES  |     | NULL    |                |
  68. | key                          | text         | YES  |     | NULL    |                |
  69. | game_feed_id                 | int(11)      | YES  |     | NULL    |                |
  70. | manual                       | int(11)      | YES  |     | 0       |                |
  71. | details                      | text         | YES  |     | NULL    |                |
  72. | rewards                      | text         | YES  |     | NULL    |                |
  73. | large_image                  | varchar(255) | YES  |     | NULL    |                |
  74. | starts_taking_submissions_at | datetime     | YES  |     | NULL    |                |
  75. | ends_at                      | datetime     | YES  |     | NULL    |                |
  76. +------------------------------+--------------+------+-----+---------+----------------+
  77. 21 rows in set (0.00 sec)
  78.  
  79.  
  80.  
  81.  
  82. bt = BadgeType.create(:name => 'badge1')
  83.  
  84.    INFO - [28/Jun/2011 14:05:08] "(0.051918s) INSERT INTO `badge_types` (`name`) VALUES ('badge1')"
  85.  => #<BadgeType @values={:name=>"badge1", :id=>33}>
  86.  
  87.  
  88. bp = BadgeProgram.create(:name => 'program1')
  89.  
  90.    INFO - [28/Jun/2011 14:03:54] "(0.050462s) INSERT INTO `badge_programs` (`name`) VALUES ('program1')"
  91.  => #<BadgeProgram @values={:name=>"program1", :id=>49}>
  92. dgeType @values={:name=>"badge1", :id=>33}>
  93.  
  94. bp.add_badge_type bt
  95.  
  96.    INFO - [28/Jun/2011 14:05:14] "(0.049666s) UPDATE `badge_types` SET `badge_program_id` = 50, `name` = 'badge1' WHERE (`id` = 33) LIMIT 1"
  97.    INFO - [28/Jun/2011 14:05:14] "(0.000793s) SELECT * FROM `badge_types` WHERE (`id` = 33) LIMIT 1"
  98.   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)"
  99. 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`))
  100.     from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/adapters/mysql.rb:200:in `query'
  101.     from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/adapters/mysql.rb:200:in `_execute'
  102.     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'
  103.     from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/adapters/mysql.rb:200:in `_execute'
  104.     from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/adapters/mysql.rb:184:in `execute'
  105.     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'
  106.     from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/database/connecting.rb:226:in `synchronize'
  107.     from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/adapters/mysql.rb:184:in `execute'
  108.     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'
  109.     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'
  110.     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'
  111.     from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/adapters/mysql.rb:433:in `update'
  112.     from /home/oren/repos/respawnproject/respawnsv00/badge_service/../../respawncore/lib/respawncore/../../shared_libs/DBUtils/sync.rb:25:in `sync_model'
  113.     from /home/oren/repos/respawnproject/respawnsv00/badge_service/app/models/badge_type_observer.rb:3:in `after_update'
  114.     from /home/oren/repos/respawnproject/respawnsv00/badge_service/../../respawncore/lib/respawncore/../../shared_libs/extensions/sequel/sequel_observer.rb:48:in `send'
  115.     from /home/oren/repos/respawnproject/respawnsv00/badge_service/../../respawncore/lib/respawncore/../../shared_libs/extensions/sequel/sequel_observer.rb:48:in `after_update'
  116.     from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/model/base.rb:1290:in `_save'
  117.     from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/model/base.rb:1040:in `save'
  118.     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'
  119.     from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/model/base.rb:1040:in `save'
  120.     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'
  121.     from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/model/base.rb:1040:in `save'
  122.     from /home/oren/repos/respawnproject/respawnsv00/badge_service/../../respawncore/lib/respawncore/../../shared_libs/extensions/sequel/model.rb:92:in `save'
  123.     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'
  124.     from /home/oren/.rvm/gems/ruby-1.8.7-p72@respawncore/gems/sequel-3.22.0/lib/sequel/model/associations.rb:1078:in `send'
  125.     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'
  126.     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'
  127.     from (irb):14ruby-1.8.7-p72 :015 >
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement