SQLAlchemy - pythonowy ORM
Posted by Jarosław Zabiełło Wed, 14 Feb 2007 00:31:00 GMT
Użytkownicy Railsów mają ułatwione zadanie z użyciem baz danych. Mają swój Active Record, ładny i czytelny ORM. Może nie posiada on ani szybkości ani możliwości takich jak pythonowy SQLAlchemy, ale jest względnie elegancki1 i prosty do nauki.
W świecie ORM’ów Pythona do niedawna królował SQLObject ale jest bardzo mocno wypierany przez znacznie potężniejszy SQLAlchemy. Niestet, SA nie jest specjalnie łatwy do opanowania. Szczególnie mętne są różne opisy rozpoczęcia pracy z SA. Preferownych jest wiele styli, zupełnie wbrew pythonowemu paradygmatowi o jednej, zalecanej drodze postępowania. Jest też moduł WSGI Alchemyware która działa w miarę dobrze z jednym wyjątkiem – źle działa z bazą MSSQL.
Elixir (SQLAlchemy + składnia Active Record)
Biblioteka Elixir ma szansę stać się hitem dla Pythona, bo jest wrapperem na mocny ORM jakim jest SQLAlchemy. Elixir udostępnia bardzo ładną składnię wzorowaną na railsowym Active Record.
Migrate (SQLAlchemy + migracje)
SQLAlchemy doczekało się też projektu implementującego wersjonowanie struktury bazy – Migrate
1 Można czepiać się składni :conditions => “która wymaga klepania SQL’a”, ale to można poprawić za pomocą pluginu ez_where. Szkoda że to nie jest standardowo dodane do Active Record.


Kanały IRC![[Dilber w Onecie]](/images/larry.png)


Męczę SA (przy okazji pisania prostego sajtu w Pylonsach) od jakiegoś czasu, i wygodny czy też intuicyjny to on dla mnie nie jest. Wręcz przeciwnie, zastanawiam się wciąż czy czasem nie użyć gołego MySQLdb i klepania ręcznie SQLa. Ale może jeszcze przetestuję Eliksira, którego proponujesz. Jest to jakieś rozwiązanie…
Po pierwszych próbach z SA wynika, że bardziej skomplikowane sprawy lepiej się robi w SA niż w SO. Ale zobaczymy gdzie będzie pierwsza ściana.
Podzielam opinie, że ciężko zacząć z SA. Wydaje mi się, ze przyszłością jest intuicyjny wrapper na mocny silnik SA. Tak jak ładnie pylons obudowuje Paster’a.