Raven db: создание новой базы данных
Я новичок в ворон БД. Я прочитал API и пытаюсь создать базу данных. Он имеет что-то вроде функции EnsureDatabaseExists, которая создает базу данных, если она не существует. Он фактически использует тип DocumentDatabase для создания этой базы данных. Я использую его, и он создает базу данных, но я хочу использовать этот объект напрямую, чтобы с помощью этого объекта я мог напрямую работать с документами. Я делаю правильно? Или может быть лучше подход к работе с документами. Спасибо.
2 ответа
Я думаю, что вы путаете документ базы данных и запрашиваете документы.
Документ базы данных - это документ в базе данных по умолчанию, который просто представляет базу данных в RavenDB, которая не является базой данных по умолчанию. Он хранит некоторые данные, такие как имя базы данных и местоположение. Вы, как потребитель ravendb, никак не связаны с этим документом. И это не имеет ничего общего с запросом любых других документов.
Посмотрите здесь, чтобы узнать, как запросить ravendb для документов. Чтобы запросить конкретную базу данных, если вы работаете только с этой базой данных, вам лучше просто указать имя базы данных в строке подключения. Если вы работаете с несколькими базами данных одновременно, вы можете указать имя базы данных, которое вы хотите при открытии сеанса, store.OpenSession("database-name")
,
Три метода доступны на store.DatabaseCommands.GlobalAdmin
,
GetDatabaseNames
: перечисляет имена баз данныхEnsureDatabaseExists
: создает базу данных, если она не существуетCreateDatabase
: создает базу данных
Обратите внимание, что DocumentStore.Initialize()
уже гарантирует, что база данных создана. Вы можете передать логическое значение false, чтобы избежать этого поведения.
// init store object, you pass the service URL + the database name
var store = new DocumentStore("http://localhost:8001/databases/MyNewDataBase");
store.Initialize(false);
// most simple thing is:
var dbName = store.DefaultDatabase;
store.DatabaseCommands.GlobalAdmin.EnsureDatabaseExists(dbName);
Если вы хотите проверить, не создавая:
// there is a method to list the database names
bool exists = false;
for (int i = 0; i < int.MaxValue; i++)
{
var names = store.DatabaseCommands.GlobalAdmin.GetDatabaseNames(100, i * 100);
if (names.Contains(dbName))
{
exists = true;
break;
}
if (names.Length < 100)
{
// no more databases
break;
}
}
if (exists)
{
// database exists, do something
}
Ссылка: https://ravendb.net/docs/article-page/3.5/Csharp/client-api/commands/how-to/create-delete-database