Aplikacja Meteor - resetowanie bazy danych wdrożonej aplikacji

82

Czy istnieje prosty sposób na zresetowanie danych z aplikacji wdrożonej przez meteor?

Na przykład, gdybym wdrożył aplikację o nazwie test.meteor.com- jak mogę łatwo zresetować dane zebrane przez tę aplikację?

Uruchamiam lokalnie meteor reset, ale nie jestem pewien, co robić na produkcji.

CaptConrado
źródło

Odpowiedzi:

108

Jeśli masz przy sobie swoją aplikację, możesz to zrobić w katalogu swojego projektu

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

Pierwsza usuwa aplikację, więc jest pusta. Drugi wdraża z powrotem nową instancję.

Akszat
źródło
Hej @akshat, czy uważasz, że stackoverflow.com/questions/10214385/how-does-meteor-work powinien zostać ponownie otwarty?
Dan Dascalescu
wydaje się, że to trochę hack. czy nie ma czystszego sposobu?
dcsan
Czy ten kod spowoduje, że adres URL będzie tymczasowo dostępny do pobrania?
Merlin -they-them-
nie ma to nic wspólnego z resetowaniem danych aplikacji w środowisku produkcyjnym i nie rozumiem, dlaczego ta odpowiedź otrzymała tak wiele głosów poparcia
MickaelFM
43

jednym ze sposobów jest samodzielne zalogowanie się do instancji mongo i usunięcie odpowiednich danych, więc coś w rodzaju kolekcji:

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

możesz po prostu porzucić całą bazę danych, ale to zmyliłoby ich środowisko, a --deletemimo to musisz uruchomić aplikację i ponownie ją wdrożyć.

> db.dropDatabase()
dcsan
źródło
2
To powinna być akceptowana odpowiedź, oszczędziłeś mi przebudowy + ponownego przesłania, dzięki!
saimeunt
robienie tego w środowisku produkcyjnym z zalogowanymi użytkownikami jest złe!
Adaptabi
2
@DotNetWise: Nie powinieneś mieć produkcyjnego APP.meteor.com. W najlepszym przypadku masz tam wersję beta, a ponieważ jest to wersja beta, ludzie wiedzą, że mogą spodziewać się takich czkawek (jeśli usunięcie całego konta i wszystkiego, co kiedykolwiek zrobili, liczy się jako czkawka. Wyobraź sobie, że zrobił to Facebook - zastanawiam się, ile osób będzie
kłopotać się
Świetna sugestia - wystarczyło po prostu upuścić kilka baz danych.
ArtOfWarfare
3

Wiem, że to trochę stare, ale właśnie zmieniłem nazwę mojej kolekcji. więc w twoim /lib/collections.jspliku

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

staje się

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

zakłada to oczywiście, że Twoja aplikacja generuje dane do bazy danych.

Dave
źródło
1
Nie usunąłeś tutaj starej kolekcji, właśnie utworzyłeś nową, pustą. Jeśli zrobiłeś to w aplikacji działającej na serwerze (zamiast tylko lokalnie), nadal będziesz mieć dane na serwerze wewnątrz kolekcji o nazwie originalcollection.
kahmali
1
Tak, @krose, rozpoznaję to, ale chodzi o to, że jest to łatwe i szybkie, jeśli chcesz coś przetestować. Jak zauważyli inni, nie używasz myapp.meteor.comdo produkcji. A gdyby tak, ZDECYDOWANIE nie chciałbyś po prostu porzucić produkcyjnej bazy danych. Stosuję tę strategię, aby bezpiecznie wypróbowywać nowe rzeczy w moim modelu bez narażania danych. IMHO ta odpowiedź nie była tak zła, że ​​zasługiwała na głosowanie negatywne, ponieważ jest to znacznie bezpieczniejszy sposób radzenia sobie z danymi produkcyjnymi. zawsze możesz porzucić konkretną kolekcję, jak wyjaśnia komentarz @ dcsan
Dave
1
Wygląda na to, że to szybki hack, którego możesz użyć, jeśli wiesz, co robisz :) Głos za głosem, aby zrównoważyć głos przeciw :)
dcsan Kwietnia
1

Po prostu możesz uzyskać dostęp do swojej bazy danych meteor jako

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

gdzie XYZ = twoja subdomena

do uwierzytelnienia użyj autoryzacji meteor (nazwa użytkownika i hasło)

Możesz uzyskać do niego dostęp z narzędzi rockmongo , robomogo , mongoui itp.

Aby uzyskać dostęp z wiersza poleceń

Najpierw uwierzytelnij się, wpisując nazwę użytkownika, hasło meteor

Logowanie do $ meteor

Następnie

$ meteor mongo XYZ.meteor.com

Nishchit Dhanani
źródło