one*_*lid 5 deployment mongodb meteor
我在Modulus上运行一个分阶段的Meteor应用程序,想知道是否有办法在远程mongoDB上执行类似于'meteor reset'的操作.
我可以通过运行使用mongo的命令行,db.dropDatabase();但是这也会删除system.users包含mongo数据库帐户的命令行.
有兴趣知道如何在部署流程中实现这一目标.
当你运行时,meteor reset流星递归删除所有目录和文件:
.meteor/local.
# source : meteor/tools/commands.js (line 806-807)
...
var localDir = path.join(options.appDir, '.meteor', 'local');
files.rm_recursive(localDir);
...
Run Code Online (Sandbox Code Playgroud)
我知道你想从MongoDB中存储的数据库中删除特定的集合.这样做的方法很少:
编写脚本,循环遍历要删除的集合的名称,然后db.getCollection(name).drop()在每个集合上执行
.
来自cmd:mongo [数据库] --eval"db.getCollection([collectionName]).drop();"
或者来自mongo shell:
db.getCollection([collectionName]).drop();
Run Code Online (Sandbox Code Playgroud)
这是一种简单的方法:单击并删除.
如果您具有对服务器的SSH访问权限,那么您可以将远程端口Y隧道连接到本地端口X,因此mongo将在端口X上本地可用:
ssh -L27018:localhost:27017 user@host
Run Code Online (Sandbox Code Playgroud)
然后在Robomongo中创建与localhost:27018的连接,并且您可以访问远程数据库.
if(Meteor.isServer){
Collection.remove({})
}
Run Code Online (Sandbox Code Playgroud)
我的一个生产应用程序在部署新版本时删除了一些集合:
if(Meteor.isServer){
Meteor.startup(function(){
if(cleanDB){
CollectionA.remove({});
CollectionB.remove({});
CollectionC.remove({});
}
})
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3346 次 |
| 最近记录: |