Toggle Databases State Operation
(Enable / Disable)



Enable Database

// Define the toggle state operation
// specify the database name & pass 'false' to enable
var enableDatabaseOp = new ToggleDatabasesStateOperation("Northwind", disable: false);

// To enable multiple databases use:
// var enableDatabaseOp =
//     new ToggleDatabasesStateOperation(new [] { "DB1", "DB2", ... }, disable: false);

// Execute the operation by passing it to Maintenance.Server.Send
var toggleResult = documentStore.Maintenance.Server.Send(enableDatabaseOp);
// Define the toggle state operation
// specify the database name(s) & pass 'false' to enable
var enableDatabaseOp = new ToggleDatabasesStateOperation(new [] { "Foo", "Bar" }, disable: false);

// Execute the operation by passing it to Maintenance.Server.SendAsync
var toggleResult = await documentStore.Maintenance.Server.SendAsync(enableDatabaseOp);

Disable Database

// Define the toggle state operation
// specify the database name(s) & pass 'true' to disable
var disableDatabaseOp = new ToggleDatabasesStateOperation("Northwind", disable: true);

// To disable multiple databases use:
// var disableDatabaseOp =
//     new ToggleDatabasesStateOperation(new [] { "DB1", "DB2", ... }, disable: true);

// Execute the operation by passing it to Maintenance.Server.Send
var toggleResult = documentStore.Maintenance.Server.Send(disableDatabaseOp);
// Define the toggle state operation
// specify the database name(s) & pass 'true' to disable
var disableDatabaseOp = new ToggleDatabasesStateOperation("Northwind", disable: true);

// Execute the operation by passing it to Maintenance.Server.SendAsync
var toggleResult = await documentStore.Maintenance.Server.SendAsync(disableDatabaseOp);

Syntax

// Available overloads:
public ToggleDatabasesStateOperation(string databaseName, bool disable)
public ToggleDatabasesStateOperation(string[] databaseNames, bool disable)
Parameter Type Description
databaseName string Name of database for which to toggle state
databaseNames string[] List of database names for which to toggle state
disable bool true - request to disable the database(s)
false- request to enable the database(s)

// Executing the operation returns the following object:
public class DisableDatabaseToggleResult
{
    public bool Disabled; // Is database disabled
    public string Name;   // Name of the database
    public bool Success;  // Has request succeeded
    public string Reason; // Reason for success or failure
}

Disable a Database Manually

It may sometimes be useful to disable a database manually, through the file system.

  • To manually disable a database simply place a file named disable.marker in the database directory.
    The disable.marker file can be empty, and can be placed in the database directory in any available method, e.g. using explorer, a terminal, or code.
  • Attempting to use a manually disabled database will generate the following exception:
    Unable to open database: '{store.Database}', it has been manually disabled via the file: '{disableMarkerPath}'. To re-enable, remove the disable.marker and reload the database.
  • To enable a manually disabled database delete disable.marker from the database directory and reload the database.