Class: DatabaseStructureManager

DatabaseStructureManager


new DatabaseStructureManager(database, isSimulationMode)

Parameters:
Name Type Description
database Database

Objeto que aponte para o banco que terá sua estrutura modificada. Observe que este objeto deve estar logado, caso contrário, o DatabaseStructureManager não conseguirá executar os comandos no banco.

isSimulationMode boolean

(opcional) true para ligar o modo de simulação. O modo de simulação foi criado para que as alterações no banco não sejam realizadas pela API, e sim, pelo DBA manualmente. Todos os comandos SQL que alteram algo no banco, são guardados em um array, o #sqlLog. Assim, após a execução da rotina que usa a API, é possível colher os comandos SQL gerados e não aplicados para que sejam executados manualmente pelo DBA.

See:

Methods


addColumn(tableName, columnName, columnDataType, nullable, lengthOrPrecision, scale)

Adiciona uma coluna a uma determinada tabela.

Parameters:
Name Type Description
tableName string

Nome da tabela onde deverá ser adicionada a coluna.

columnName string

Nome da coluna que será criada.

columnDataType object

Objeto da coleção columnDataType do objeto.

nullable boolean

true se o campo criado pode ser NULL, false caso contrário.

lengthOrPrecision number

Caso o tipo informado seja de precisão variável, a precisão deve ser informada aqui. Caso o tipo informado possa ser criado informando-se o tamanho, este deve ser informado aqui.

scale number

Caso o tipo informado seja de precisão variável, a escala deve ser informada aqui.

Example
__includeOnce('ufs:/ngin/db/DatabaseStructureManager.js');
 var dbsm = ngin.db.makeDatabaseStructureManager(database);

 // 'ALTER TABLE my_table ADD COLUMN my_column1 DECIMAL(10,2) NOT NULL'
 dbsm.addColumn('my_table', 'my_column1', dbsm.columnDataType.DECIMAL, true, 10, 2);

 // 'ALTER TABLE my_table ADD COLUMN my_column2 VARCHAR2(10)'
 dbsm.addColumn('my_table', 'my_column2', dbsm.columnDataType.VARCHAR2, false, 10);

 // 'ALTER TABLE my_table ADD COLUMN my_column3 INTEGER NOT NULL'
 dbsm.addColumn('my_table', 'my_column3', dbsm.columnDataType.INTEGER, true);

addConstraint(tableName, constraintStatement, constraintName, columnConstraintType)

Adiciona uma constraint em uma coluna ou mais colunas de uma tabela. As constraints disponíveis para este método são: CHECK, PRIMARY_KEY e UNIQUE.

Parameters:
Name Type Description
tableName string

Nome da tabela em que será adicionada a constraint.

constraintStatement string

Texto que define a regra da constraint escolhida.

constraintName string

Nome da constraint a ser adicionada.

columnConstraintType Object

Objeto da coleção columnConstraintType que define o tipo de constraint a ser criada.

Example
__includeOnce('ufs:/ngin/db/DatabaseStructureManager.js');
 var dbsm = ngin.db.makeDatabaseStructureManager(database);

 // criando uma tabela de exemplo
 dbsm.createTable('example_table', 'PK1', dbsm.columnDataType.INTEGER);
 dbsm.addColumn('example_table', 'PK2', dbsm.columnDataType.INTEGER, true);
 dbsm.addColumn('example_table', 'UN1', dbsm.columnDataType.INTEGER, true);
 dbsm.addColumn('example_table', 'UN2', dbsm.columnDataType.INTEGER, true);

 // adicionando uma primary key composta
 dbsm.addConstraint('example_table', 'PK1, PK2', 'compost_pk_example',
   dbsm.columnConstraintType.PRIMARY_KEY);

 // adicionando uma constraint unique composta
 dbsm.addConstraint('example_table', 'UN1, UN2', 'compost_unique_example',
   dbsm.columnConstraintType.UNIQUE);

 // adicionando uma constraint check
 dbsm.addConstraint('example_table', 'UN1 > 0 and UN2 > 0', 'compost_unique_example',
   dbsm.columnConstraintType.CHECK);

addForeignKey(tableName, columnName, constraintName, foreignTableName, foreignColumnName)

Adiciona uma constraint do tipo chave estrangeira.

Parameters:
Name Type Description
tableName string

Nome da tabela hospedeira da chave estrangeira.

columnName string

Nome da coluna hospedeira da chave estrangeira.

constraintName string

Nome da constraint que será criada.

foreignTableName string

Nome da tabela referenciada pela chave estrangeira.

foreignColumnName string

Coluna chave primária da tabela referenciada.

Example
__includeOnce('ufs:/ngin/db/DatabaseStructureManager.js');
 var dbsm = ngin.db.makeDatabaseStructureManager(database);

 // Supondo que existam duas tabelas, table_a e table_b, com suas respectivas chaves
 primárias pk_a e pk_b.
 // A tabela table_b tem um campo que referencia a tabela table_a, o fk_table_a.
 // Para criar essa constraint:
 dbsm.addForeignKey('table_b', 'fk_table_a', 'fk_table_a_to_table_b', 'table_a', 'pk_a');

createIndex(isUnique, indexName, tableName, columns)

Cria um índice em uma determinada tabela.

Parameters:
Name Type Description
isUnique boolean

Se true, cria um unique index.

indexName string

Nome do index a ser criado.

tableName string

Nome da tabela onde será criado o índice.

columns string

Colunas as serem indexadas. Caso seja mais de uma coluna, devem ser separados por virgula.


createTable(tableName, columnName, columnDataType, lengthOrPrecision, scale)

Cria uma tabela no banco de dados. Para manter compatibilidade com o MSSQL2008, é necessário que seja criado junto com a tabela, no mínimo, uma coluna e ela tem que ser NOT NULL. Essa coluna é candidata a chave primária, mas não é criada como tal. Assim a tabela é criada com uma coluna NOT NULL e sem chave primária.

Parameters:
Name Type Description
tableName string

Nome da tabela a ser criada.

columnName string

Nome da coluna que sera criada junto com a nova tabela.

columnDataType object

Objeto da coleção columnDataType que define o tipo de coluna a ser criado.

lengthOrPrecision number

Caso o tipo informado seja de precisão variável, a precisão deve ser informada aqui. Caso o tipo informado possa ser criado informando-se o tamanho, este deve ser informado aqui.

scale number

Caso o tipo informado seja de precisão variável, a escala deve ser informada aqui.

See:
Example
__includeOnce('ufs:/ngin/db/DatabaseStructureManager.js');
 var dbsm = ngin.db.makeDatabaseStructureManager(database);

 dbsm.createTable('example_table', 'PK1', dbsm.columnDataType.INTEGER);

createView(viewName, viewStatement)

Cria uma visão no banco de dados.

Parameters:
Name Type Description
viewName string

Nome da visão a ser criada.

viewStatement string

Query de definição da view. Importante: Esta query não sofre modificação por parte da API, portanto, a responsabilidade sobre a compatibilidade desta com o SGBD é do usuário da API.

See:
Example
__includeOnce('ufs:/ngin/db/DatabaseStructureManager.js');
 var dbsm = ngin.db.makeDatabaseStructureManager(database);

 dbsm.createView('view_name_example', 'SELECT * FROM ILOG WHERE ikey < 0');

dropColumn(tableName, columnName)

Remove uma coluna de uma determinada tabela.

Parameters:
Name Type Description
tableName string

Nome da tabela que terá uma coluna deletada.

columnName string

Nome da coluna que sera deletada.

Example
__includeOnce('ufs:/ngin/db/DatabaseStructureManager.js');
 var dbsm = ngin.db.makeDatabaseStructureManager(database);

 // 'ALTER TABLE my_table DROP COLUMN my_column'
 dbms.dropColumn('my_table', 'my_column');

dropConstraint(tableName, constraintName)

Remove uma constraint de uma determinada tabela.

Parameters:
Name Type Description
tableName string

Nome da tabela que possui a constraint.

constraintName string

Nome da constraint a ser removida.


dropIndex(tableName, indexName)

Remove um índice de determinada tabela.

Parameters:
Name Type Description
tableName string

Nome da tabela que contém o índice a ser apagado.

indexName string

Nome do índice a ser apagado.


dropTable(tableName)

Remove completamente uma tabela do banco de dados.

Parameters:
Name Type Description
tableName string

Nome da tabela a ser removida.


dropView(viewName, isCascade)

Remove visão no banco de dados.

Parameters:
Name Type Description
viewName string

Nome da visão a ser removida do banco de dados.

isCascade boolean
See:

indexExists(tableName, indexName)

Checa existe um índice em determinada tabela por seu nome.

Parameters:
Name Type Description
tableName string

Nome da tabela onde o índice será procurado.

indexName string

Nome do índice a ser procurado na tabela.

Returns:

true se o índice foi encontrado e falso caso contrário.

Type
boolean

tableExists(tableName)

Consulta se a tabela informada existe entre as tabelas visíveis pelo usuário do banco de dados.

Parameters:
Name Type Description
tableName string

Nome da tabela que será procurada.

Returns:

true se a tabela existe, false caso contrário.

Type
boolean

viewExists(viewName)

Testa se uma visão existe dentre as que o usuário do banco de dados tem permissão.

Parameters:
Name Type Description
viewName string

Nome da view a ser procurada.

Returns:

true se a view existe, caso contrário, false.

Type
boolean