流星应用程序-重置已部署应用程序的数据库


82

是否有一种简单的方法可以从流星部署的应用程序重置数据?

因此,例如,如果我部署了一个名为的应用程序test.meteor.com-如何轻松重置该应用程序收集的数据?

我在本地运行meteor reset,但不确定在生产中要做什么。

Answers:


108

如果您有自己的应用程序,则可以在项目目录中执行此操作

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

第一个删除应用程序,因此全部空白。第二个部署回它的一个新实例。



这似乎有点hack。有没有更清洁的方法?
dcsan 2014年

此代码会导致URL暂时被抢劫吗?
Merlin -they-them-

这与在生产环境中重置应用程序数据无关,而且我不明白为什么这个答案获得了如此多的
好评

43

一种方法是自己登录mongo实例并删除相关数据,例如每个集合:

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

您可以删除整个数据库,但这会使他们的环境混乱,您必须转到--delete应用程序并重新部署。

> db.dropDatabase()

2
这应该是已接受的答案,您为我节省了重建和重新上传的工作,谢谢!
saimeunt 2014年

在具有登录用户的生产环境中这样做是一件坏事!
Adaptabi 2014年

2
@DotNetWise:您不应该拥有生产APP.meteor.com。充其量您可以找到一个Beta,并且将其作为Beta,人们知道会期望这样的打((如果他们的整个帐户以及他们曾经删除的所有内容都算作打ic。请想象Facebook是否这样做了-我想知道有多少人会
不顾

很棒的建议-我真正需要做的只是删除一些数据库。
ArtOfWarfare 2015年

3

我知道这有点旧,但我只是更改了收藏名称。所以在您的/lib/collections.js文件中

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

变成

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

当然,这是假设您的应用为数据库生成了数据。


1
您尚未删除此处的旧收藏,只是创建了一个新的空白收藏。如果您是在服务器(而不是本地)上运行的应用程序中执行此操作的,则仍然会在名为的集合中将数据持久保存在服务器上originalcollection
kahmali 2015年

1
是的,@ krose,我知道这一点,但要点是,如果您需要测试某些东西,它既简单又快速。正如其他人指出的那样,您不会将其myapp.meteor.com用于生产。而且,如果您这样做了,那么您肯定不会只希望删除生产数据库。我采用这种策略来安全地在模型中尝试新事物,而又不会破坏数据。恕我直言,此响应还算不错,应该受到否决,因为这是处理生产数据的更安全的方法。您可以随时删除特定的收藏集,如@dcsan的评论所述
Dave

1
如果您知道自己在做什么,似乎可以使用一种快速技巧:)投票以平衡
投票

1

您只需以以下方式访问流星数据库:

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

其中XYZ =您的子域

进行身份验证使用流星身份验证(用户名和密码)

您可以从rockmongorobomogomongoui等工具访问它。

从命令行访问

首先通过输入用户名,流星密码进行身份验证

$流星登录

然后

$流星mongo XYZ.meteor.com

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.