Nota prawna: Jestem opiekunem Sequel.
Sequel jest łatwy w użyciu wzdłuż lub zamiast ActiveRecord podczas korzystania z Rails. Musisz ręcznie skonfigurować połączenie z bazą danych, ale poza tym użycie jest podobne.Twoje pliki modelu Sequel trafiają do aplikacji/modeli i działają podobnie do modeli ActiveRecord.
Konfigurowanie połączeń z bazą danych nie jest uciążliwe, to zazwyczaj jedna linia w environment.rb wymaga kontynuacji, a wiersz w każdym pliku środowiska (development.rb, test.rb, production.rb) robi coś takiego :
DB = Sequel.connect (...)
Więc to tylko uciążliwe, jeśli wziąć pod uwagę 4 linie kodu instalacyjnego żmudne.
Używanie surowego kodu SQL zasadniczo nie stanowi problemu, chyba że kierujesz się do wielu baz danych. Głównym powodem, aby tego uniknąć, jest zwiększona szczegółowość. Sequel obsługuje używanie surowego SQL co najmniej tak łatwo jak ActiveRecord, ale czasy, w których musisz używać surowego SQL, są generalnie dość rzadkie w Sequelu.
BTW, Sequel zawiera wiele wtyczek do sprawdzania poprawności. Wtyczka validation_class_methods jest podobna do sprawdzania ActiveRecord przy użyciu metod klasy. Wtyczka validation_helpers ma prostszą implementację przy użyciu metod na poziomie instancji, ale obie mogą zrobić z grubsza to samo.
Na koniec powiem, że jeśli masz już działający kod ActiveRecord, który robi to, co chcesz, prawdopodobnie nie warto wysyłać kodu do Sequel, chyba że masz zamiar dodawać funkcje.
Mam nadzieję, że nie spotkałem się z anty-Sequelem, to jest moja ulubiona opcja poza Railsami. Nie widzę dużej korzyści z używania dwóch bibliotek razem, tylko po to, aby uzyskać trochę dodatkowej niezależności od platformy, nawet gdy potrzebny SQL jest skomplikowany. Myślę, że to przesada, zwłaszcza jeśli deweloper już wie, co chce napisać. Przerobienie takiego niestandardowego SQL z pewnością nie było największym problemem związanym z bazą danych, z którym miałem do czynienia, gdy musiałem przenosić się z MySQL na Oracle! –
Jakieś wskazówki, jak uzyskać dalszy obiekt db z aktywnego połączenia rekordów? – fotanus