RavenDB als Embedded Datenbank nutzen
In meinem Einstiegspost habe ich gezeigt, wie man relativ schnell mit RavenDB loslegen kann und auch die verschiedenen Deployment Arten aufgezeigt.
Eine davon war, RavenDB “in der Applikation” mit Laufen zu lassen – das hat den Vorteil, dass man keinen zusätzlichen Server braucht, selbst die Web-Admin-UI kann man aktivieren, daher ist der Einsatz in einer WebApp etwas “ungünstig”, da soll es bessere Möglichkeiten geben (später mehr dazu).
RavenDB als Embedded Version gib es auch als NuGet Package:
Der Code ist fast derselbe wie bei dem ersten Post, jedoch nutzen wir nun den Embedded Namespace samt dessen DocumentStore:
private static IDocumentStore CreateDocumentStore()
{
var documentStore = new EmbeddableDocumentStore
{
ConnectionStringName = "RavenDB"
}.Initialize();
return documentStore;
}
In der web.config ist folgendes hinterlegt:
<connectionStrings>
<add name="RavenDB" connectionString="DataDir = ~\App_Data" />
</connectionStrings>
Achtung: Falls ihr den normalen DocumentStore nehmt, dann kommt folgende Fehlermeldung:
“RavenDB could not be parsed, unknown option: datadir” – daher darauf achten, ob es der Typ aus dem Embedded Bereich ist.
Die verschiedenen Arten der ConnectionStrings sind hier näher beschrieben. Das Ergebnis ist nun, dass alle File unter App_Data abgelegt werden, ohne dass ein zusätzlicher Dienst laufen muss.







Christoph
16. August 2011
“…allerdings gibt es auch keine Admin-Web-UI…”
Wenn ich dich hier nicht falsch verstanden habe, stimmt das so nicht. Die Konfiguration muss nur etwas erweitert werden und die XAP-Datei des Management-Studios muss im Anwendungsroot bereitgestellt werden.
http://ravendb.net/faq/embedded-with-http
http://stackoverflow.com/questions/6947092/is-it-possible-to-connect-to-an-embedded-db-with-raven-management-studio
Robert Mühsig
16. August 2011
Oh – vielen Dank für die Information, ich ändere es gleich noch im Blogpost. Hatte ich wohl gestern übersehen