Köztudott, hogy a Rails (pontosaban az ActiveRecord) bármiylen adatbázissal tud kommunikálni, amelyhez telepítjük és konfiguráljuk a megfelelő adaptert. Nos, a probléma épp ez utóbbi, hiszen "papíron" ugyan minden szép és jó, amikor azonban egy valós problémával kerülünk szembe, akkor már nem leszünk ennyire optimisták:)
Korábban dolgoztam egy projecten, ahol a Rails alkalmazásnak MySQL és MS SQL adatbázisokkal egyaránt kommunikálnia kellett. Bár a feladatot sikeresen megoldottam, senkinek nem kívánom azt a ******-t, amely a driverek megfelelő beállítását végigkisérte.
DBI, ruby-odbc, FreeTDS telepítés, .ini fájlok másolgatása és még sorolhatnám. Természetesen ezt követően a konfiguráció reprodukálása az éles szerveren és akkor arról még nem is beszéltünk, hogy egy teljes nap arra ment el, hogy kiderüljön: a tökéletes konfiguráció a Snow Leopard default Ruby-jával sosem fog működni, ezért újra kell telepíteni a Ruby-t MacPort-ként, az összes gemmel együtt.
Szerencsére mára Ken Collinsnak (MetaSkills) köszönhetően változott a helyzet, mert elérhetővé tette a TinyTDS-t, amely egy modern és gyors FreeTDS library.
Azoknak a fejlesztőknek, akik hasonló problémával kerülnek szembe, mindenképpen javaslom, hogy tegyenek egy próbát a TinyTDS-el, mert könnyen lehet, hogy sok felesleges problémától kímélik meg magukat. A részletes leírás az EngineYard blogon olvasható.