<?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: SQLAlchemy - pythonowy ORM</title>
    <link>http://blog.zabiello.com/articles/2007/02/14/sqlalchemy</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>moje notatki, linki, komentarze</description>
    <item>
      <title>SQLAlchemy - pythonowy ORM</title>
      <description>&lt;p&gt;U&#380;ytkownicy Rails&#243;w maj&#261; u&#322;atwione zadanie z u&#380;yciem baz danych. Maj&#261; sw&#243;j &lt;a href="http://api.rubyonrails.org/files/vendor/rails/activerecord/README.html"&gt;Active Record&lt;/a&gt;, &#322;adny i czytelny &lt;a href="http://en.wikipedia.org/wiki/Object-relational_mapping"&gt;&lt;span class="caps"&gt;ORM&lt;/span&gt;&lt;/a&gt;. Mo&#380;e nie posiada on ani szybko&#347;ci ani mo&#380;liwo&#347;ci  takich jak pythonowy &lt;a href="http://www.sqlalchemy.org/"&gt;SQLAlchemy&lt;/a&gt;, ale jest wzgl&#281;dnie elegancki&lt;sup&gt;&lt;a href="#fn1"&gt;1&lt;/a&gt;&lt;/sup&gt; i prosty do nauki.&lt;/p&gt;


	&lt;p&gt;W &#347;wiecie &lt;span class="caps"&gt;ORM&lt;/span&gt;&amp;#8217;&#243;w Pythona do niedawna kr&#243;lowa&#322; &lt;a href="http://www.sqlobject.org/"&gt;SQLObject&lt;/a&gt; ale jest bardzo mocno wypierany przez znacznie pot&#281;&#380;niejszy &lt;a href="http://www.sqlalchemy.org/"&gt;SQLAlchemy&lt;/a&gt;. Niestet, SA nie jest specjalnie &#322;atwy do opanowania. Szczeg&#243;lnie m&#281;tne s&#261; r&#243;&#380;ne opisy rozpocz&#281;cia pracy z SA. Preferownych jest wiele styli, zupe&#322;nie wbrew pythonowemu paradygmatowi o jednej, zalecanej drodze post&#281;powania. Jest te&#380; modu&#322; &lt;span class="caps"&gt;WSGI&lt;/span&gt; &lt;a href="http://cheeseshop.python.org/pypi/Alchemyware"&gt;Alchemyware&lt;/a&gt; kt&#243;ra dzia&#322;a w miar&#281; dobrze z jednym wyj&#261;tkiem &amp;#8211; &lt;a href="http://paste.lisp.org/display/36605"&gt;&#378;le dzia&#322;a z baz&#261; &lt;span class="caps"&gt;MSSQL&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;


	&lt;h3&gt;Elixir (SQLAlchemy + sk&#322;adnia Active Record)&lt;/h3&gt;


	&lt;p&gt;Biblioteka &lt;a href="http://elixir.ematia.de/index.html"&gt;Elixir&lt;/a&gt; ma szans&#281; sta&#263; si&#281; hitem dla Pythona, bo jest wrapperem na mocny &lt;span class="caps"&gt;ORM&lt;/span&gt; jakim jest SQLAlchemy. Elixir udost&#281;pnia &lt;a href="http://elixir.ematia.de/examples.html"&gt;bardzo &#322;adn&#261; sk&#322;adni&#281;&lt;/a&gt; wzorowan&#261; na railsowym Active Record.&lt;/p&gt;


	&lt;h3&gt;Migrate (SQLAlchemy + migracje)&lt;/h3&gt;


	&lt;p&gt;SQLAlchemy doczeka&#322;o si&#281; te&#380; projektu implementuj&#261;cego wersjonowanie struktury bazy &amp;#8211; &lt;a href="http://erosson.com/migrate/trac/"&gt;Migrate&lt;/a&gt;&lt;/p&gt;


&lt;hr align="left" width="30%" size="1" /&gt;

	&lt;p id="fn1"&gt;&lt;sup&gt;1&lt;/sup&gt; Mo&#380;na czepia&#263; si&#281; sk&#322;adni :conditions =&amp;gt; &amp;#8220;kt&#243;ra wymaga klepania &lt;span class="caps"&gt;SQL&lt;/span&gt;&amp;#8217;a&amp;#8221;, ale to mo&#380;na poprawi&#263; za pomoc&#261; pluginu &lt;a href="http://brainspl.at/articles/2006/06/30/new-release-of-ez_where-plugin"&gt;ez_where&lt;/a&gt;. Szkoda &#380;e to nie jest standardowo dodane do Active Record.&lt;/p&gt;</description>
      <pubDate>Wed, 14 Feb 2007 01:31:00 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:24512e85-01fd-477a-9917-5815287347dd</guid>
      <author>Jaros&#322;aw Zabie&#322;&#322;o</author>
      <link>http://blog.zabiello.com/articles/2007/02/14/sqlalchemy</link>
      <category>python</category>
      <category>sqlalchemy</category>
    </item>
    <item>
      <title>"SQLAlchemy - pythonowy ORM" by climbus</title>
      <description>&lt;p&gt;Po pierwszych pr&#243;bach z SA wynika, &#380;e bardziej skomplikowane sprawy lepiej si&#281; robi w SA ni&#380; w SO. Ale zobaczymy gdzie b&#281;dzie pierwsza &#347;ciana.&lt;/p&gt;


	&lt;p&gt;Podzielam opinie, &#380;e ci&#281;&#380;ko zacz&#261;&#263; z SA. Wydaje mi si&#281;, ze przysz&#322;o&#347;ci&#261; jest intuicyjny wrapper na mocny silnik SA. Tak jak &#322;adnie pylons obudowuje Paster&amp;#8217;a.&lt;/p&gt;</description>
      <pubDate>Wed, 14 Feb 2007 08:46:21 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:5d66ac98-77e9-4e31-8ad3-617f82b0d3e7</guid>
      <link>http://blog.zabiello.com/articles/2007/02/14/sqlalchemy#comment-515</link>
    </item>
    <item>
      <title>"SQLAlchemy - pythonowy ORM" by MySZ</title>
      <description>&lt;p&gt;M&#281;cz&#281; SA (przy okazji pisania prostego sajtu w Pylonsach) od jakiego&#347; czasu, i wygodny czy te&#380; intuicyjny to on dla mnie nie jest. Wr&#281;cz przeciwnie, zastanawiam si&#281; wci&#261;&#380; czy czasem nie u&#380;y&#263; go&#322;ego MySQLdb i klepania r&#281;cznie SQLa. Ale mo&#380;e jeszcze przetestuj&#281; Eliksira, kt&#243;rego proponujesz. Jest to jakie&#347; rozwi&#261;zanie&amp;#8230;&lt;/p&gt;</description>
      <pubDate>Wed, 14 Feb 2007 08:12:13 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:6ee9e7b8-e5f6-4435-ac9d-ec4929c5da17</guid>
      <link>http://blog.zabiello.com/articles/2007/02/14/sqlalchemy#comment-514</link>
    </item>
  </channel>
</rss>
