Tak se ve firmě rozhodli, že změní systém řízení databáze u ERP. Takže už všechny sloupce nebudou mít prefix t$ ale t_. Mě osobně je t_ sympatičtější, ale nic to nemění na faktu, že mám pár nástrojů, ve kterých se k té databázi připojuju, a které budu muset upravit. Ještě, že mám SQLAlchemy.
Mám SQLAlchemy, takže vím, že to půjde nějak jednoduše. Vpodstatě řeším 2 problémy. Jeden je, abych v definici tabulek nemusel všude přepisovat t$ na t_. Druhý, abych se pak ve výsledcích mohl odvolávat na sloupce pod původním názvem s t$. Jak tedy na to?
První, co mě napadlo bylo, že když bude nejhůř, tak nahradím funkci pro definici sloupce za jinou, ve které nahradím t$. Pak jsem začal hledat, a došel jsem k relativně funkčnímu řešení: Napsat si vlastní dialect. Na jedné straně je Compiler, který při vytváření selectů (nezmínil jsem, že z databáze pouze čtu) zamění t$, na druhé straně dekorování RowProxy, kde se to změní zpět. Funguje. Na detaily se můžete podívat tady, jestli musíte. Jenže je to špatně, protože dialect je na něco jiného.
Mike Bayer (a ten by to měl vědět) radí dvě možnosti.
Nebo ne? No, vlatně pokud se, jako já, musíte připojovat k MS Sql Serveru, tak k tomu používáte dialekt mssql, který má v současných SQLAlchemy chybu, takže při přístupu k výsledkům nebude právě ten key fungovat. Ale stáhněte si development verzi, tam už je to opraveno…
Ja tomu nerozumiem. Ked som nieco premenoval z t$ na t_, preco by som sa chcel odvolavat na povodne nazvy?
Ako jediny mozny dovod sa javi to, aby som nemusel menit a pretestovavat nejake dalsie veci. Ale ak teraz padlo rozhodnutie o zmene a s vedomim tejto zmeny sa (nevyhnutne) budu robit vacsie regresne testy, tak tu zmenu dotiahnem a spravim to systematicky a konzistentne.
<b>4, 1:</b> Děkuju za komentáře, reaguju na ně v dalším blog postu (http://pysk.blog.root.cz/2012/11/19/we-need-doers-in-our-movement/).
Jmenuju se Petr Blahoš. Programuju něco přes 20 let. Tady se snažím psát hlavně o Pythonu, webovém frameworku Pyramid, a občas i o něčem úplně jiném.
Přečteno 19 224×
Přečteno 11 852×
Přečteno 9 344×
Přečteno 8 802×
Přečteno 8 592×