<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Jaros&#322;aw Zabie&#322;&#322;o - BLOG: Sequel w Rails - skrypt do migracji</title>
    <link>http://blog.zabiello.com/articles/2008/02/29/sequel-w-rails-skrypt-do-migracji</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>moje notatki, linki, komentarze</description>
    <item>
      <title>Sequel w Rails - skrypt do migracji</title>
      <description>&lt;p&gt;&lt;a href="http://code.google.com/p/ruby-sequel/"&gt;Sequel&lt;/a&gt; posiada &lt;a href="http://code.google.com/p/ruby-sequel/wiki/Migrations"&gt;podobny&lt;/a&gt; mechanizm migracji co &lt;a href="http://ar.rubyonrails.org/classes/ActiveRecord/Migration.html"&gt;Active Record&lt;/a&gt;. Brakowa&#322;o mi tylko taska Rake do podobnego szybkiego w&#281;drowania w g&#243;r&#281; i w d&#243;&#322; (historii zmian struktury tabel w bazie).&lt;/p&gt;


	&lt;p&gt;Poni&#380;szy kod (wystarczy dorzuci&#263; go gdzie&#347; do Rakefile) wykorzystuje tak&#261; sam&#261; sk&#322;adni&#281; wywo&#322;ania, jaka jest u&#380;ywana w migracjach dla Active Record. Podczas pracy skryptu wy&#347;wietlane s&#261; tak&#380;e wszystkie wykonywane kwerendy &lt;span class="caps"&gt;SQL&lt;/span&gt;.&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="comment"&gt;# Usage:&lt;/span&gt;
&lt;span class="comment"&gt;#&lt;/span&gt;
&lt;span class="comment"&gt;# rake sequel:migrate&lt;/span&gt;
&lt;span class="comment"&gt;# rake sequel:migrate VERSION=0&lt;/span&gt;
&lt;span class="comment"&gt;# rake sequel:migrate VERSION=3&lt;/span&gt;
&lt;span class="comment"&gt;#&lt;/span&gt;
&lt;span class="ident"&gt;desc&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;Sequel migration&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;
&lt;span class="ident"&gt;namespace&lt;/span&gt; &lt;span class="symbol"&gt;:sequel&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt;
  &lt;span class="ident"&gt;require&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;sequel&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;
  &lt;span class="constant"&gt;Rails&lt;/span&gt;&lt;span class="punct"&gt;::&lt;/span&gt;&lt;span class="constant"&gt;Initializer&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;run&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt;&lt;span class="ident"&gt;config&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt;
    &lt;span class="constant"&gt;DB&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;Sequel&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="constant"&gt;YAML&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;load_file&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;config&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;database_configuration_file&lt;/span&gt;&lt;span class="punct"&gt;)[&lt;/span&gt;&lt;span class="constant"&gt;RAILS_ENV&lt;/span&gt;&lt;span class="punct"&gt;])&lt;/span&gt;
    &lt;span class="constant"&gt;DB&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;logger&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;Logger&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;new&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="global"&gt;$stdout&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;
  &lt;span class="keyword"&gt;end&lt;/span&gt;
  &lt;span class="ident"&gt;task&lt;/span&gt; &lt;span class="symbol"&gt;:migrate&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt;    
    &lt;span class="ident"&gt;path&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;File&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;join&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="constant"&gt;RAILS_ROOT&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;db&lt;/span&gt;&lt;span class="punct"&gt;',&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;migrate&lt;/span&gt;&lt;span class="punct"&gt;')&lt;/span&gt;
    &lt;span class="keyword"&gt;if&lt;/span&gt; &lt;span class="constant"&gt;ARGV&lt;/span&gt;&lt;span class="punct"&gt;[&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;&lt;span class="punct"&gt;]&lt;/span&gt; &lt;span class="punct"&gt;=~&lt;/span&gt; &lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="regex"&gt;VERSION=&lt;span class="escape"&gt;\d&lt;/span&gt;+&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;
      &lt;span class="constant"&gt;Sequel&lt;/span&gt;&lt;span class="punct"&gt;::&lt;/span&gt;&lt;span class="constant"&gt;Migrator&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;apply&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="constant"&gt;DB&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="ident"&gt;path&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="constant"&gt;ARGV&lt;/span&gt;&lt;span class="punct"&gt;[&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;&lt;span class="punct"&gt;].&lt;/span&gt;&lt;span class="ident"&gt;split&lt;/span&gt;&lt;span class="punct"&gt;('&lt;/span&gt;&lt;span class="string"&gt;=&lt;/span&gt;&lt;span class="punct"&gt;')[&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;&lt;span class="punct"&gt;].&lt;/span&gt;&lt;span class="ident"&gt;to_i&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt; 
    &lt;span class="keyword"&gt;else&lt;/span&gt;
      &lt;span class="constant"&gt;Sequel&lt;/span&gt;&lt;span class="punct"&gt;::&lt;/span&gt;&lt;span class="constant"&gt;Migrator&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;apply&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="constant"&gt;DB&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="ident"&gt;path&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt; 
    &lt;span class="keyword"&gt;end&lt;/span&gt;
  &lt;span class="keyword"&gt;end&lt;/span&gt;
&lt;span class="keyword"&gt;end&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
      <pubDate>Fri, 29 Feb 2008 04:17:00 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:954cbf82-d6d2-4b87-90ec-bde5b0704816</guid>
      <author>Jaros&#322;aw Zabie&#322;&#322;o</author>
      <link>http://blog.zabiello.com/articles/2008/02/29/sequel-w-rails-skrypt-do-migracji</link>
      <category>sequel</category>
    </item>
    <item>
      <title>"Sequel w Rails - skrypt do migracji" by rsz</title>
      <description>&lt;p&gt;Automatyczna migracja? Nigdy w to nie uwierz&#281; w powa&#380;nych &#347;rodowiskach produkcyjnych, gdzie nie wchodzi w gr&#281; zdropowanie wszystkiego i za&#322;o&#380;enie od nowa. Aktualnie w firmie mamy praktyk&#281; &#347;ledzenia tych zmian r&#281;cznie (&amp;#8220;patche&amp;#8221; w SQLu) i&amp;#8230; o dziwo sprawdza si&#281; praktycznie bezb&#322;&#281;dnie.&lt;/p&gt;</description>
      <pubDate>Sun, 09 Mar 2008 18:12:17 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:288df72a-e937-4429-bc6f-9ab543937e97</guid>
      <link>http://blog.zabiello.com/articles/2008/02/29/sequel-w-rails-skrypt-do-migracji#comment-1485</link>
    </item>
    <item>
      <title>"Sequel w Rails - skrypt do migracji" by greno</title>
      <description>&lt;p&gt;Mo&#380;e to dlatego, &#380;e wygenerowa&#322;em model przez resource (/script/generate resource mojresource title:string ..), mo&#380;e to dlatego &#380;e zastosowa&#322;em sqlite3. W ka&#380;dy b&#261;dz razie zdziwi&#322;em si&#281; jak w bazie po rake sequel:db:migrate nie by&#322;o pola ID. Pewnie co&#347; &#378;le zrobilem, ale to da&#322;o mi do my&#347;lenia, &#380;e trzeba patrze&#263; co robi generator. PS. Czekam na Merb 1.0.&lt;/p&gt;</description>
      <pubDate>Mon, 03 Mar 2008 14:29:03 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:d96d83d8-d588-4633-be14-e33d44683a8e</guid>
      <link>http://blog.zabiello.com/articles/2008/02/29/sequel-w-rails-skrypt-do-migracji#comment-1464</link>
    </item>
    <item>
      <title>"Sequel w Rails - skrypt do migracji" by Jaros&#322;aw Zabie&#322;&#322;o</title>
      <description>&lt;p&gt;@greno: Co ty powiadasz? Nie musisz nic deklarowa&#263;. Merb nie ma tu nic do rzeczy, bo Sequel jest kompletnie niezale&#380;n&#261; bibliotek&#261;.&lt;/p&gt;</description>
      <pubDate>Fri, 29 Feb 2008 09:04:14 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:060ef047-f42d-4c8c-9a8b-39731d884498</guid>
      <link>http://blog.zabiello.com/articles/2008/02/29/sequel-w-rails-skrypt-do-migracji#comment-1454</link>
    </item>
    <item>
      <title>"Sequel w Rails - skrypt do migracji" by greno</title>
      <description>&lt;p&gt;Rozczarowa&#322;em si&#281; sequelem, jak si&#281; okaza&#322;o &#380;e sam musz&#281; definiowa&#263; primary key, przynajmniej w merb 0.5.3.&lt;/p&gt;</description>
      <pubDate>Fri, 29 Feb 2008 08:23:10 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:3159adb3-bef5-40a4-9f3b-ea5df652863d</guid>
      <link>http://blog.zabiello.com/articles/2008/02/29/sequel-w-rails-skrypt-do-migracji#comment-1452</link>
    </item>
  </channel>
</rss>
