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.

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ę.


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()

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.


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.