10

Belgeleri okudum ve bugüne kadar bana yardımcı olacak herhangi bir şey bulabildim. Ayrıca çok sayıda blog makalesi okudum, ancak hiçbir şey doğrudan soruma cevap vermiyor gibi görünüyor:Ruby on Rails/ActiveRecord ve Tablo Bölümleri

Tablo bölümlerini bir ActiveSoftware ile bir InnoDB tablosundan yönetmek mümkün müdür? Gerçekten işleri çok temiz tutmayı tercih ederim ve zaman içinde bölümlerin oluşturulmasını/silinmesini otomatikleştirmek için harici komut dosyaları yazmamaktan kaçınmaya çalışıyorum.

+0

Hangi bölüm yönetimini istiyorsunuz? –

+0

@RickJames Eh, hadi her türlü ile başlayalım. Şu anda iki gün boyunca olan tarih aralıklarında bölümleri çalıştırıyorum. Rails'le olan bölümler için herhangi bir türden yönetimden habersizim, ne de herhangi bir zekice bir şekilde yapma iddiasında olan herhangi bir mücevherle karşılaşmam. –

+0

El ile bölümleme ile nihai hedefiniz nedir? Belki de kediyi yanlış şekilde ciltlemeye çalışıyorsunuz ve daha az manüel bir süreç var (örneğin uygun indeksler ekleyerek)? ActiveRecord bir soyutlamadır ve MySQL'in zaten soyutlamaya çalıştığı (AFAIK) bir şey için destek eklemenin gerçekten çok sızıcı görünmesini sağlar. – hoffmanc

cevap

0

yılında bağlantısı üzerinden DB üzerinde çalıştırmak için gereken komut göndermek gerekir Bu soruyu ilk sorduğumdan beri ortaya çıktı. Çözüm, MySQL veya Maria üzerinden Postgresql kullanımını gerektirse de, Rails için varsayılan veritabanı olduğundan az bir engel değildir.

Github'daki Partitioned gem, tüm bölme mekanizmalarını hoş bir şekilde Railsy şekilde işleyebilir.

0

ActiveRecord'un DROP PARTITION ve REORGANIZE PARTITION gibi şeyleri nasıl yaptığını göremiyorum. Saklı bir prosedürü bile söyleyebilir mi? Eğer öyleyse, my blog'dakine benzer bir tane oluşturun ve Rails'den arayın.

+0

Yine de geçişler kesinlikle destekliyor. –

0

Evet, yapabilirsin! Ama sizin için yapacak bir mücevher olduğunu sanmıyorum. bölüm yönetimini gerçekleştirmek için

kendiniz zor işi yapmak ve doğrudan aşağıdaki şekilde ek bir çözüm vardır

ActiveRecord::Base.connection.execute("ALTER TABLE your_table drop partition p0") 
+0

Mm .. Bu ne diyor, "Bunu desteklemek için yerleşik bir şey yok, bu yüzden ham SQL kendiniz yapın ..." Tam olarak aradığım şey değil. Eğer SQL'i kendim yapmak zorunda kalırsam, Rails çerçevesini ilk yüklemenin tüm yüküyle uğraşmazdım. Sadece sahip olduğum komut dosyalarını kullanmaya devam ediyorum. –

+0

postreSQL bölümlerini yönetmek için birkaç araç vardır, MySQL yerine denemelisiniz veya bu gemiyi kendiniz yazmalı ve dünyadaki tüm ray programcılarına iyi davranmalısınız. – Tata

+0

Mysql'deki bölümleri kapsamlı olarak kullanıyorum ve bunları tanımlamak ve yönetmek için activerecord'da ham SQL kullanmaktan başka hiçbir şeye rastlamıyorum. – TJChambers