Class: DatabaseSchemaObserver

@nginstack/engine/lib/schema/DatabaseSchemaObserver~ DatabaseSchemaObserver


new DatabaseSchemaObserver()

Classe que permite observar as alterações no esquema de uma base de dados realizadas pela classe DatabaseSchema.

Atualmente é possível observar alterações por meio dos seguintes eventos:

  • 'addTableColumns': criação de colunas em uma tabela.
  • 'alterTableColumns': alteração de colunas de uma tabela.
  • 'dropTableColumns': remoção de colunas de uma tabela.

Os nomes das tabelas, colunas, índices, visões e triggers informados pelos eventos desta classe são normalizados em caixa baixa.

Events


addTableColumns

Evento emitido após as colunas terem sido adicionadas em uma tabela.

Type: module:@nginstack/engine/lib/schema/DatabaseSchemaObserver~AddTableColumnsEvent
Example
const DatabaseSchema = require('@nginstack/engine/lib/schema/DatabaseSchema');
const DatabaseSchemaObserver = require('@nginstack/engine/lib/schema/DatabaseSchemaObserver');

const observer = new DatabaseSchemaObserver();
observer.on('addTableColumns', function (evt) {
  const columnNames = evt.columns.map(function (def) { return def.name; });
  log.info('Columns added to table ' + evt.tableName + ': ' + columnNames.join(', ));
});
DatabaseSchema.registerObserver(observer);

alterTableColumns

Evento emitido após as colunas terem sido alteradas em uma tabela.

Type: module:@nginstack/engine/lib/schema/DatabaseSchemaObserver~AlterTableColumnsEvent
Example
const DatabaseSchema = require('@nginstack/engine/lib/schema/DatabaseSchema');
const DatabaseSchemaObserver = require('@nginstack/engine/lib/schema/DatabaseSchemaObserver');

const observer = new DatabaseSchemaObserver();
observer.on('alterTableColumns', function (evt) {
  const columnNames = evt.columns.map(function (def) { return def.name; });
  log.info('Columns altered on table ' + evt.tableName + ': ' + columnNames.join(', ));
});
DatabaseSchema.registerObserver(observer);

dropTableColumns

Evento emitido após as colunas terem sido removidas de uma tabela.

Type: module:@nginstack/engine/lib/schema/DatabaseSchemaObserver~DropTableColumnsEvent
Example
const DatabaseSchema = require('@nginstack/engine/lib/schema/DatabaseSchema');
const DatabaseSchemaObserver = require('@nginstack/engine/lib/schema/DatabaseSchemaObserver');

const observer = new DatabaseSchemaObserver();
observer.on('dropTableColumns', function (evt) {
  log.info('Columns removed from table ' + evt.tableName + ': ' + evt.columns.join(', ));
});
DatabaseSchema.registerObserver(observer);