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

Другие вопросы по тегам