Meteor uygulaması - dağıtılan bir uygulamanın veritabanını sıfırlama


82

Meteor konuşlandırılmış bir uygulamadan verileri sıfırlamanın basit bir yolu var mı?

Öyleyse, örneğin, adlı bir uygulamayı dağıtmış test.meteor.comolsaydım, o uygulama tarafından toplanan verileri nasıl kolayca sıfırlayabilirim?

Yerel olarak çalışıyorum meteor reset, ancak üretimde ne yapacağımdan emin değilim.

Yanıtlar:


108

Yanınızda uygulamanız varsa, bunu proje dizininizde yapabilirsiniz.

meteor deploy test.meteor.com --delete
meteor deploy test.meteor.com 

İlki, uygulamayı tamamen boş bırakacak şekilde siler. İkincisi, yeni bir örneğini geri dağıtır.


Hey @akshat, stackoverflow.com/questions/10214385/how-does-meteor-work'ün yeniden açılması gerektiğini düşünüyor musun?
Dan Dascalescu

bu biraz hile gibi görünüyor. daha temiz bir yol yok mu?
dcsan

Bu kod, URL'nin geçici olarak yakalanmasına neden olur mu?
Merlin -they-them-

bunun üretimdeki bir uygulama verisini sıfırlamakla ilgisi yok ve bu cevabın neden bu kadar çok olumlu oy aldığını anlamıyorum
MickaelFM

43

Bunun bir yolu, mongo örneğine kendiniz giriş yapmak ve ilgili verileri silmektir, böylece her koleksiyonda olduğu gibi:

$ meteor mongo APP.meteor.com
> db.users.drop()
> db.xxx.drop()

Tüm DB'yi bırakabilirsiniz, ancak bu onların ortamını karıştırır ve --deleteyine de uygulamaya ve yeniden dağıtmaya ihtiyacınız olur.

> db.dropDatabase()

2
Kabul edilen cevap bu olmalı, beni bir yeniden inşa + yeniden yüklemeden kurtardınız, teşekkürler!
saimeunt

bunu oturum açmış kullanıcılarla üretimde yapmak kötü bir şey!
Adaptabi

2
@DotNetWise: APP.meteor.com üretimine sahip olmamanız gerekiyor. En iyi ihtimalle orada bir beta sürümünüz var ve bunun bir beta olmasıyla, insanlar böyle hıçkırık beklemeyi biliyorlar (eğer hesaplarının tamamı ve yaptıkları her şey bir hıçkırık olarak sayılırsa. Facebook'un bunu yaptığını hayal edin - kaç kişi merak ediyorum kalmayı ve her şeyi yeniden yaratmayı rahatsız ederdi.)
ArtOfWarfare

Harika bir öneri - gerçekten yapmam gereken tek şey birkaç veritabanını kaldırmaktı.
ArtOfWarfare

3

Bunun biraz eski olduğunu biliyorum ama az önce koleksiyon adımı değiştirdim. yani /lib/collections.jsdosyanda

someCollection = new Mongo.Collection("originalcollection");

olur

someCollection = new Mongo.Collection("newcollectionname");

bu tabii ki uygulamanızın veritabanı için veri oluşturduğunu varsayar.


1
Eski koleksiyonu buradan kaldırmadınız, yeni bir boş tane oluşturdunuz. Bunu bir sunucuda çalışan bir uygulamada yaptıysanız (yalnızca yerel olarak yerine), sunucunuzda adlı bir koleksiyon içinde kalan verileriniz olmaya devam eder originalcollection.
kahmali

1
Evet @krose, bunu anlıyorum, ama önemli olan şu ki, eğer bir şeyi test etmeniz gerekiyorsa kolay ve hızlı. Başkalarının da belirttiği gibi, myapp.meteor.comüretim için kullanmıyorsunuz . Ve eğer yapsaydınız, KESİNLİKLE bir üretim veritabanını düşürmek istemezsiniz. Bu stratejiyi, verilerden ödün vermeden modelimle yeni şeyleri güvenle denemek için yapıyorum. IMHO'nun bu yanıtı, üretim verileriyle başa çıkmanın çok daha güvenli bir yolu olduğu için olumsuz bir oylamayı hak edecek kadar kötü değildi. @ dcsan'ın yorumunun açıkladığı gibi, belirli bir koleksiyonu istediğiniz zaman bırakabilirsiniz
Dave

1
Ne yaptığınızı biliyorsanız kullanabileceğiniz hızlı bir hack gibi görünüyor :) olumsuz oyu dengelemek için oy verildi :)
dcsan

1

Meteor DB'nize şu şekilde erişebilirsiniz:

production-db-d2.meteor.io:27017/XYZ_meteor_com

burada XYZ = alt alanınız

kimlik doğrulama için meteor kimlik doğrulama (kullanıcı adı ve şifre) kullanın

Sen de erişebilirsiniz rockmongo , robomogo , mongoui vb araçlar,.

Komut satırından erişmek için

Önce kullanıcı adı ve meteor şifresini yazarak kimlik doğrulayın

$ meteor girişi

Sonra

$ meteor mongo XYZ.meteor.com

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.