我正在尝试从代码为现有数据库设置PeriodicBackups。 已在web.config中启用PeriodicBackups包。
我目前正在使用此代码:
using (var session = systemStore.OpenSession())
{
var databaseDocument = session.Load<DatabaseDocument>("Raven/Databases/MyDatabase");
if (databaseDocument != null)
{
databaseDocument.Settings.Add("Raven/AzureStorageAccount", "MyStorageAccount");
databaseDocument.SecuredSettings.Add("Raven/AzureStorageKey", "abc123");
session.SaveChanges();
}
}
这导致数据库“MyDatabase”的以下设置:
{
"Id": "MyDatabase",
"Settings": {
"Raven/DataDir": "~\\Databases\\MyDatabase",
"Raven/AzureStorageAccount": "MyStorageAccount"
},
"SecuredSettings": {
"Raven/AzureStorageKey": "<data could not be decrypted>"
},
"Disabled": false
}
而且PeriodicBackups自然不起作用。 我想这可能是因为AzureStorageKey无法解密。 我应该加密我自己写给SecuredSettings的值吗?如果是的话,我该怎么做?
答案 0 :(得分:1)
如果您有安全设置,则无法以这种方式直接写入sys文档。 您需要使用store.DatabaseCommands.Admin.CreateDatabase()方法,该方法知道如何处理此问题。