{"id":258,"date":"2009-03-14T11:38:31","date_gmt":"2009-03-14T19:38:31","guid":{"rendered":"http:\/\/jaredrobinson.com\/blog\/?p=258"},"modified":"2009-03-14T11:38:31","modified_gmt":"2009-03-14T19:38:31","slug":"mwrc-sequel-the-database-toolkit-for-ruby-by-jeremy-evans","status":"publish","type":"post","link":"https:\/\/jaredrobinson.com\/blog\/mwrc-sequel-the-database-toolkit-for-ruby-by-jeremy-evans\/","title":{"rendered":"mwrc: Sequel: The Database Toolkit for Ruby by Jeremy Evans"},"content":{"rendered":"<p>Sequel: The Database Toolkit for Ruby<br \/>\nby Jeremy Evans<\/p>\n<p>He&#8217;s not the original implementer of the Sequel module. He&#8217;s improved it quite<br \/>\na bit. He added Jruby and Ruby 1.9 support, among other things.<\/p>\n<p>Sequel is a domian-spefic-language (DSL) for Ruby for dealing with databases.<br \/>\nIt&#8217;s not designed with web apps in mind, although it does work with them.<\/p>\n<p>He spoke very quickly, as he was constrained for time. Sounded interesting,<br \/>\nbut was a bit hard to follow due to the speed.<\/p>\n<p>sequel_model &#8211; an ORM build on Sequel<\/p>\n<p>He uses it successfully with the adaptors for Oracle, MySQL and PostgreSQL adaptors.  Has a thread safe connection pool. Insures db connections aren&#8217;t leaked.<\/p>\n<p>Sequel::Dataset sets it apart from other Ruby db libraries.<\/p>\n<p>You can write complex SQL data queries without writing SQL, although you can if you want.<\/p>\n<p>&#8211; Dataset Graphing<br \/>\n&#8211; Pagination Support<br \/>\n&#8211; Create table, Schema modification, etc.<br \/>\n&#8211; Master\/Slave databases &#8212; requires no modifications to your code.<br \/>\n&#8211; Sharding\/Partitioning &#8211; simple to support with Sequel module<br \/>\n&#8211; Bound variables \/might\/ be faster, but don&#8217;t depend on it.<br \/>\n&#8211; Prepared statements are similar to bound variables, but potentially faster.<br \/>\nOnly use after profiling\/benchmarking.<\/p>\n<p>Has a command line client called &#8216;sequel&#8217;. The -E option causes all SQL to be<br \/>\nechoed to standard output.<\/p>\n<p>The future: Sequel 3.0. Many features will be moving to plugins, and the<br \/>\nmajority of the work is already complete. It&#8217;s going to be easier to use, and<br \/>\nrequire less memory.<\/p>\n<p>Q: Does it support sharded database migrations?<\/p>\n<p>A: No, not at this time. You can submit a patch.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sequel: The Database Toolkit for Ruby by Jeremy Evans He&#8217;s not the original implementer of the Sequel module. He&#8217;s improved it quite a bit. He added Jruby and Ruby 1.9 support, among other things. Sequel is a domian-spefic-language (DSL) for Ruby for dealing with databases. It&#8217;s not designed with web apps in mind, although it &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/jaredrobinson.com\/blog\/mwrc-sequel-the-database-toolkit-for-ruby-by-jeremy-evans\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;mwrc: Sequel: The Database Toolkit for Ruby by Jeremy Evans&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[20,21],"class_list":["post-258","post","type-post","status-publish","format-standard","hentry","category-programming","tag-mtnwestrubyconf","tag-mwrc"],"_links":{"self":[{"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/posts\/258","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/comments?post=258"}],"version-history":[{"count":1,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/posts\/258\/revisions"}],"predecessor-version":[{"id":259,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/posts\/258\/revisions\/259"}],"wp:attachment":[{"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/media?parent=258"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/categories?post=258"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/tags?post=258"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}