Başka bir seçenek Son zamanlarda rastlamak ettik şeydir (verilmiş, bunu kullanmak için henüz değilim ama plan yakında): rdbms-subsetter
.
Birkaç güzel özellik / avantaj ile Jailer'den biraz daha basit ve daha hafif:
- Mevcut takımlara bağlamak çok kolay CLI
- Açık kaynak
- Bir getirme yabancı anahtarları takip edecek tutarlı verilerin alt kümesini
- Eğer iyi tanımlanmış yabancı anahtarları yoksa, ilişkiler olabilir JSON yapılandırma dosyası aracılığıyla sağlanacaktır. Benim durumumda, bu yapılandırmayı başka bir yerde saklanan şema meta verilerinden oluşturmayı planlıyorum (teşekkürler, Rails: \)
- Belirli bir satırı hedefleyebilir ve ilgili tüm kayıtları alabilirsiniz (örneğin, belirli bir müşterinin sorunları vardır, böylece hesap iş verilerini yerel olarak erişilebilir hale getirmek için her şeyi aşağı çekebilirsiniz)
- Tablo başına sabit sayıda kayıt alabilir veya denize girmeden daha büyük tablolardan daha fazla veri almak için bir logaritma alabilir.
Özellikle çok kullandığım (orada çalıştığım gibi) Heroku veritabanları için başka bir seçenekten bahsetmeye değer.
Heroku aslında hazırlanmak için önce yazma günlüklerini çeker, daha sonra yakalamak için birincil DB'ye bağlanır, ardından onu takip etmeyi durdurur gibi yeni bir anlık görüntü DB oluşturma konusunda oldukça hızlıdır. Üretimi çok fazla etkilemek için bu "çatalları" uygulamalarda oluşturabilirsiniz:
$ heroku addons:create heroku-postgres[:specific-plan] \
--fork your-production-app::DATABASE \
--app some-other-app-to-own-forked-database \
[--as PRODUCTION_SNAPSHOT]
Ardından, uygulamanızı bu anlık görüntüye işaret ederek yerel olarak başlatabilirsiniz. Bunu sık sık veri veya şema taşıma işlemleri yapmak veya müşteri sorunlarını ayıklamak için kullanıyorum.
Yukarıdaki komutta, DATABASE_URL
on your-production-app
ile erişilebilen bir DB'niz PRODUCTION_SNAPSHOT_URL
varsa --as
, adlı farklı bir uygulamada erişilebilecek ( belirtmişseniz) bir DB ile karşılaşırsınız some-other-app-to-own-forked-database
.