我的# PATH TO SVN.EXE
$svn = "C:\Program Files\VisualSVN Server\bin\svn.exe"
$pathtowebistesWP = "c:\websites-wp\"
# STORE HOOK ARGUMENTS INTO FRIENDLY NAMES
$serverpathwithrep = $args[0]
$revision = $args[1]
# GET DIR NAME ONLY FROM REPO-PATH STRING
# EXAMPLE: C:\REPOSITORIES\DEVHOOKTEST
# RETURNS 'DEVHOOKTEST'
$dirname = ($serverpathwithrep -split '\\')[-1]
# Combine ServerPath with Dir name
$exportpath = -join($pathtowebistesWP, $dirname);
# BUILD URL TO REPOSITORY
$urepos = $serverpathwithrep -replace "\\", "/"
$url = "file:///$urepos/"
# --------------------------------
# SOME TESTING SCRIPTS
# --------------------------------
# STRING BUILDER PATH + DIRNAME
$name = -join($pathtowebistesWP, "testscript.txt");
# CREATE FILE ON SERVER
New-Item $name -ItemType file
# APPEND TEXT TO FILE
Add-Content $name $pathtowebistesWP
Add-Content $name $exportpath
# --------------------------------
# DO EXPORT REPOSITORY REVISION $REVISION TO THE C:\TEST FOLDER
&"$svn" export -r $revision --force "$url" $exportpath
数据库越来越大,我希望按日期删除文档,我还想按日期删除CouchDb
个文档
我知道如何按日期复制我的数据库删除文档但是:
¿有没有办法对_deleted
文件做同样的事情?我的意思是按日期删除_deleted
个文件
答案 0 :(得分:3)
使用过滤复制无法有条件地导致删除,也无法复制完整删除文档。
您有多种选择:
{_deleted:true}
文档的逻辑删除[这是删除首先复制的方式] 你的主要目标是什么?
如果您有数百个对象并且想要从所有副本的UI中隐藏旧对象,请编写一个脚本以在源/主副本中查找和DELETE
/ _delete:true
它们这些变化将会传播。
如果你有例如记录消息,您需要通过忘记旧消息来释放空间,编写脚本以查找_purge
,最后_compact
,然后在每个副本上运行它。但是对于这样的情况,最好是轮换数据库,例如每周手动将“shard”或bin放入另一个数据库,每周只需在每个副本上删除N + 1周龄的数据库。
答案 1 :(得分:1)
如果您的数据库越来越大,这可能是由于您的文档版本控制。释放空间的一种简单方法是运行数据库压缩(Documentation)
对于_deleted文档,您只能真正删除它们purging
因此,建议不要清除_deleted文档。只应删除非常重要的文件,例如凭证。