1
我正在嘗試從應用程序中執行RavenDB備份/還原。 Raven以嵌入模式運行。我的備份工作正常,現在我需要進行恢復。在現有數據之上還原嵌入式RavenDB
還原問題,我想恢復到當前嵌入式存儲使用的位置。我的計劃是關機嵌入式存儲,刪除位置的所有文件,恢復有:
var configuration = embeddedStore.Configuration;
var backupLocation = // location of a backup folder
var databaseLocation = // location of current DB
// shutdown the storage???
documentStore.Dispose();
// now, trying to delete the directory, I get exception "Can't delete the folder it is in use by other process"
Directory.Delete(databaseLocation, true); // <-- exception here
Directory.CreateDirectory(databaseLocation);
DocumentDatabase.Restore(configuration, backupLocation, databaseLocation, s => { }, defrag: true);
(完整的源GitHub)
問題與關閉存儲。從我得到的例外情況來看,引擎沒有關閉,因爲我無法刪除文件夾:
進程無法訪問文件'_0.cfs',因爲它正在被另一個進程使用。
我運行的應用程序是MVC5。問題是數據庫位置在web.config
中設置,我不想以任何方式修改它,因此還原必須與現有數據庫位於同一位置。
將嵌入式數據庫恢復到與現有數據庫相同位置的正確方法是什麼?
這很差。涉及手動重新啓動網站,手動更新'web.config'。相反,我可以停止站點,刪除數據,然後執行還原。有什麼意義? – trailmax
它不需要手動重新啓動網站或手動刪除舊的數據文件,它只是需要從一個ftp客戶端手動更新web.config,我知道它的醜陋,我不能以更簡單的方式做到 –
是的,我忘了更新到'web。 config'會導致站點重新啓動。但更新'web.config'不是一個選項。 – trailmax