2009-06-16 22 views
9

Diğer platformların/uygulamaların aynı veritabanını kolayca kullanabilmesi için postgresql'i yabancı anahtarlarla kullanmak istiyorum. Göç desteğiyle veritabanı şemasını tanımlamak için bir çeşit ruby ​​DSL kullanmak da harika olacaktır. Benim için hangi çerçeveyi önerirsin?Bağımsız bir yakut uygulamasında kullanmak için hangi yakut ORM çerçevesi?

Yalnızca veritabanı şeması değişikliklerini, geçişleri ve ORM'den ayrı sürümleri işlemek için bir çeşit çerçeve var mı?

cevap

6

DataMapper. Sinatra ile recently used it ve uygulamayı Heroku'ya dağıttım. Yazmam gereken tek SQL CREAT DATABASE oldu. DataMapper'ın bana verdiği her şey .auto_migrate ile sağladı! ve .auto_upgrade! işlevsellik.

Yabancı anahtar desteği dm kısıtlamaları eklentisinde bulunur.

+0

"Satırlar ve nesneler arasında bire bir eşleme" gördüğümde okumayı durdurdum. ORM tasarımlarında bu IMHO yaygın bir hatadır. Bu tür sistemler üzerinde çalıştığım iki proje, işlemlerle ilgili sorunlara yol açtı. – finnw

+0

Lütfen detaylandırın, bağlantıyı göremiyorum. –

+0

ve ActiveRecord yine de aynı dezavantajlara sahiptir – SztupY

0

ActiveRecord kullanılmaması için iyi bir neden var mı? Ruby için bir standarttır ...

+2

Evet. OP, çoklu uygulamalar arasında bir veritabanını paylaşmak istiyor. Bu ActiveRecord'un güçlü noktalarından biri değil. – finnw

+0

AR ile ilgili hiçbir şey bunu yapmamanı engelliyor. – DanSingerman

+4

standardı iyi anlamına gelmez. ActiveSupport'a bağımlılık, bağımsız bir uygulama için tehlikeli olabilir. – SztupY

6

ActiveRecord ve DataMapper arasında ikincisini seçtim. Her ikisi de Aktif Kayıt modelini kullanır, bu nedenle veritabanı tablolarınızı fantezi etki alanı mantığına sahip olmayan nesnelere geri alırsınız, ancak DataMapper ile çalışmak daha kolaydır ve iş parçacığı güvenlidir. Sequel da var, ama aşina değilim.

Taşıma işlemlerini yürütmek için bir çerçeveye ihtiyacınız varsa, merb numaralı telefonu öneririm. Althoug, 1.1'den başlayan tam bir web çerçevesidir. Daha önce bahsedilen üç ORM çerçevesi için (ayrı ve otomatik geçişler dahil) geçişleri kaldırabilir

2

M4DBI da ilginizi çekebilir. İsterseniz ham SQL yazmanıza izin vermek için DBI'dan yararlanan düşük seviyeli bir ORM.

+0

Bu iyi iş Pistos gibi görünüyor. Gerekçeniz işaretin üstünde. –

+0

link ölü gibi görünüyor –

+0

@Michael: [github projesi] 'ne bakın (https://github.com/Pistos/m4dbi). RDBI tarafından geçersiz kılınmış ve henüz bunun için M4DBI güncellemelerini yapmadım. – Pistos