Class: IdoDBManager

@nginstack/engine/lib/ido/IdoDBManager~ IdoDBManager


new IdoDBManager()

Classe que permite a gestão dos bancos IDO do Engine que está em execução.

Importante: a criação de bancos de dados IDO normalmente ocorre em cenários com concorrência de execução. Deve ser utilizada classe CriticalSection a fim de garantir que a criação da base de dados seja realizada por uma única sessão JavaScript.

Example
criticalSection.enter(criticalSectionName);
try {
  const db = idoDBManager.databaseExists(dbName)
    ? idoDBManager.loadDatabase(dbName)
    : idoDBManager.createDatabase(dbName);

  if (db.tableExists(tableName)) {
    return db.loadTable(tableName);
  } else {
    const ds = new DataSet(db);
    ds.fieldDefs.add(fieldDefs);
    ds.create(tableName);
    return ds;
  }
} finally {
  criticalSection.leave(criticalSectionName);
}

Methods


createDatabase(name)

Cria uma base de dados IDO.

Os dados das tabelas da base de dados serão gravados em arquivos no diretório `<engine.dataDir>/appdbs' e serão preservados após a finalização do Engine.

Parameters:
Name Type Description
name string

Nome da base de dados a ser criada.

Returns:

Instância da base de dados IDO criada.

Type
IdoDB

createTempDatabase( [dbName] [, options])

Cria uma base de dados IDO temporária.

Por padrão, as bases de dados temporárias são mantidas enquanto o Engine estiver em execução. Esse comportamento pode ser modificado por meio da opção autoDrop. Ao ativar essa opção, a base temporária será mantida apenas enquanto houver sessões Javascript que a referenciem, sendo uma opção recomendada para bases de dados temporárias utilizadas por uma única sessão JavaScript.

Parameters:
Name Type Argument Description
dbName string <optional>

Nome da base de dados a ser criada. Caso não seja informado, será criada uma base de dados com nome aleatório com a opção autoDrop ativa, não sendo possível reabrir essa base de dados posteriormente pelo método loadDatabase.

options Object <optional>

Opções de criação da base de dados.

Properties
Name Type Argument Description
autoDrop boolean <optional>

Cria uma base de dados temporária que é removida automaticamente caso não esteja mais em uso.

Returns:

Instância da base de dados IDO criada.

Type
IdoDB

databaseExists(name)

Verifica se já existe uma base de dados IDO.

Parameters:
Name Type Description
name string

Nome da base de dados que será verificada a sua existência.

Returns:

Retorna o valor true se a base de dados existir.

Type
boolean

deleteDatabase(name)

Remove uma base de dados.

Parameters:
Name Type Description
name string

Nome da base de dados que será removida.


loadDatabase(name)

Carrega uma base de dados IDO.

Parameters:
Name Type Description
name string

Nome da base de dados que será carregada.

Returns:

Instância da base de dados IDO carregada.

Type
IdoDB

renameDatabase(oldName, newName)

Renomeia uma base de dados persistente.

Este método não pode ser utilizado em bases de dados temporárias.

Parameters:
Name Type Description
oldName string

Nome atual da base de dados.

newName string

Novo nome da base de dados.