Skip to content

Instantly share code, notes, and snippets.

@ZNS
Created September 5, 2012 09:20
Show Gist options
  • Save ZNS/3633961 to your computer and use it in GitHub Desktop.
Save ZNS/3633961 to your computer and use it in GitHub Desktop.
Backup script for RavenDB 1.2
param(
[parameter(Mandatory=$true)]
[string[]]
$ravenUrl,
[parameter(Mandatory=$true)]
[string[]]
$backupDir,
[parameter(Mandatory=$true)]
[string[]]
$ravenBackupTool
)
#Get tenants to backup
$req = [System.Net.WebRequest]::Create("$ravenUrl/databases")
$resp = $req.GetResponse();
$reqstream = $resp.GetResponseStream()
$sr = new-object System.IO.StreamReader $reqstream
$result = $sr.ReadToEnd();
$reqstream.Dispose()
$resp.Dispose()
$result = $result.Replace("Raven/DataDir", "RavenDataDir")
$json = $result | ConvertFrom-JSON
#Create directory
$currentDate = Get-date -format yyyy-MM-dd_HHmm
if (-not (test-path "$backupDir\$currentDate")) {
new-item -path $backupDir -name $currentDate -itemtype directory | out-null
}
$backupDirThis = "$backupDir\$currentDate"
#Backup default database
& "$ravenBackupTool\Raven.Backup.exe" --url=$ravenUrl --dest=$backupDirThis\System
#Backup tenants
foreach ($tenant in $json)
{
$db = $tenant.Settings.RavenDataDir.Split('\') | Select -Last 1;
& "$ravenBackupTool\Raven.Backup.exe" --url=$ravenUrl/databases/$db --dest=$backupDirThis\$db
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment