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);