Module: @nginstack/engine/lib/schema/DataModelSchema

Classes

DataModelSchema

Type Definitions


ClassDefError

Erro na definição de uma classe de dados.

Type:
  • Object
Properties:
Name Type Description
classKey number

Chave da classe.

className string

Nome da classe.

classPath string

Caminho da classe.

tableName string

Nome da tabela associada à definição da classe de dados ou uma string vazia caso não haja uma.

error string

Mensagem de erro.

stackTrace string

Pilha do erro convertida em uma string.


ColumnDataTypeDef

Definição do tipo de dado de uma coluna. Em uma hierarquia de classes, uma coluna pode ter várias definições do tipo de dados que são combinadas. Este objeto representa uma dessas definições.

Type:
  • Object
Properties:
Name Type Argument Description
dataType string

Tipo normalizado da coluna. Deverá ser um dos tipos indicados em DatabaseDataType ou nulo caso o tipo não seja suportado pelo Engine.

charLength number <nullable>

Tamanho máximo em caracteres das colunas do tipo 'char' e 'varchar'.

sourceClass number

Chave da classe de dados onde esta definição foi realizada.


ColumnInfo

Informações de uma coluna da base de dados.

Type:
  • Object
Properties:
Name Type Argument Description
name string

Nome da coluna.

dataType string

Tipo normalizado da coluna. Deverá ser um dos tipos indicados em DatabaseDataType ou nulo caso o tipo não seja suportado pelo Engine.

charLength number <nullable>

Tamanho máximo em caracteres das colunas do tipo 'char' e 'varchar'.

nullable boolean

Indica que a coluna permite valores nulos.

sparse boolean

Indica que a coluna é otimizada para gravar valores nulos. O conceito de colunas esparsas é exclusivo do Microsoft SQL Server e os demais SGBDs já otimizam a gravação de nulos de forma padrão. No Oracle e PostgreSQL, essa propriedade sempre será false.

referencedTable string <nullable>

Tabela que contém os registros referenciados pelas chaves contidas nesta coluna. Será null em colunas que não sejam do tipo lookup.

referencedClass number <nullable>

Chave da classe de dados que contém os registros referenciados pelas chaves contidas nesta coluna. Se uma coluna for definida por mais de uma classe de dados, será retornada a classe ancestral comum a todas as definições de classKey encontradas. Em colunas que não sejam do tipo lookup, será null.

integrityCheck boolean

Indica se a coluna é verificada na validação de integridade referencial durante a exclusão de registros do sistema.

sourceClass number

Chave da classe de dados que definiu a coluna originalmente.

userCanChangeNegativeKeyClasses Array.<number>

Chaves das classes onde esta coluna foi configurada para permitir a sua alteração até em registros de chave negativa.

dataTypeDefs Array.<ColumnDataTypeDef>

Array contendo as distintas configurações de tipo do dado e tamanho da coluna encontradas na hierarquia de classes que define a tabela.

errors Array.<string>

Erros na declaração desta coluna que impedem a sua criação ou atualização.

warnings Array.<string>

Alertas que indicam a necessidade de revisar a definição desta coluna, mas que não impedem a sua criação ou atualização.

See:

Database

Type:
  • module:@nginstack/engine/lib/schema/database/Database~Database

DataModelSchemaInfo

Informações do esquema declarado pelo modelo de dados.

Type:
  • Object
Properties:
Name Type Description
classDefErrors Array.<ClassDefError>

Erros observados durante a execução das definições das classes de dados.

tables Array.<TableInfo>

Tabelas do modelo de dados.

tableColumns Record.<string, Array.<ColumnInfo>>

Colunas das tabelas do modelo de dados.

tableIndexes Record.<string, Array.<IndexInfo>>

Índices das tabelas do modelo de dados.

unmanagedTableNames Array.<string>

Nomes de outras tabelas que podem existir na base de dados, mas que não são gerenciadas pelo sistema.


DataModelSchemaOptions

Opções no processamento das definições das classes de dados.

Type:
  • Object
Properties:
Name Type Description
baseClass number

Classe a partir da qual será obtido o modelo de dados. Caso não seja informada, será utilizada a classe Raiz (-2010000000).

ignoreClassDefErrors boolean

Indica se os erros que impedem a construção das definições de classes devem ser ignorados e apenas registrados em log. Por padrão, um erro na construção de uma definição de classe irá interromper a execução dos métodos de obtenção de informações sobre as tabelas, colunas e índices. No entanto, se esta opção estiver ativa, esses métodos passam a ignorar esses erros e continuarão a avaliação do modelo de dados, retornando todas as configurações não afetadas pelo erro. Ao utilizar esta opção, sempre utilize o método scanForClassDefErrors para consultar os erros que foram ignorados. Os retornos dos métodos de obtenção de informações do modelo de dados devem ser considerados completos apenas se scanForClassDefErrors não retornar erros.


Field

Type:
  • module:@nginstack/engine/lib/schema/classdef/Field~Field

IndexInfo

Informações de um índice da base de dados.

Type:
  • Object
Properties:
Name Type Argument Description
name string

Nome do índice.

columns Array.<string>

Colunas indexadas.

columnsOrder Array.<string>

Array de mesmo tamanho de columns, indicando a ordem da coluna no índice. Valores possíveis: 'ASC' e 'DESC'.

filterPredicate string

Expressão de filtro dos registros indexados. A expressão será apresentada em uma representação interna e específica por SGBD. Não é esperado que ela seja igual à expressão informada no momento da construção do índice e ela pode ser alterada em versões futuras do SGBD.

unique boolean

Indica que é um índice único. Índices únicos garantem que os valores contidos neles não se repetem.

tablespace string

Nome do tablespace onde o índice deve ser criado. O Microsoft SQL Server não possui o conceito de tablespaces, portanto, nesse SGBD específico, será considerado como o filegroup, recurso específico desse SGBD que permite implementar uma segregação equivalente a obtida com o uso dos tablespaces. Um valor vazio indica que não há uma configuração específica para esse índice e ele deve ser criado no tablespace padrão.

constraintType string

Tipo da restrição que criou esse índice, caso ele tenha sido criado para validar a chave primária ou alguma outra restrição da tabela. Valores possíveis: 'PRIMARY KEY' ou 'UNIQUE'.

compressed boolean

Indica se o índice deve comprimir as chaves. Esse é um recurso exclusivo do Oracle e é habilitado por meio da opção "COMPRESS" no comando de criação do índice.

sourceClass number <nullable>

Chave da classe de dados onde o índice foi declarado, caso ele tenha sido definido em um arquivo do tipo x-model ou x-class.

definitionKey number <nullable>

Chave do registro que declarou o índice, caso ele tenha sido definido por meio de um registro da classe "Índices" (-1898140003).

integrityCheck boolean

Indica se o índice foi criado para a validação de integridade referencial durante a exclusão de registros do sistema.

disabled boolean

Indica se este índice foi desativado. Um índice pode ser desativado automaticamente quando há outro índice que sobrepõe as colunas indexadas por ele ou manualmente pelo administrador do sistema, quando for avaliado que o índice não gera benefícios ao desempenho do sistema. Veja a propriedade #disableReason para detalhes do motivo pelo qual o índice foi desativado.

disableReason string

Motivo pelo qual o índice foi desativado.

errors Array.<string>

Erros na declaração deste índice que impedem a sua criação ou atualização.

warnings Array.<string>

Alertas que indicam a necessidade de revisar a definição deste índice, mas que não impedem a sua criação ou atualização.


TableInfo

Informações de uma tabela da base de dados.

Type:
  • Object
Properties:
Name Type Description
name string

Nome da tabela normalizado em caixa baixa.

displayName string

Nome da tabela declarado na classe de dados, sem nenhum tipo de normalização.

primaryKey Array.<string>

Nome das colunas que definem a chave primária da tabela.

tableClass number

Classe que definiu a tabela.

tableClassName string

Nome da classe que definiu a tabela.

keyFieldName string

Nome do campo que armazena a chave do registro nesta tabela.

classFieldName string

Nome do campo que armazena a classe do registro nesta tabela.

versionFieldName string

Nome do campo que armazena a versão do registro nesta tabela.

cacheStrategy TableCacheStrategy

Estratégia de como os dados desta tabela devem ser gravados no cache local do Engine.

upgradeMustSyncRecords boolean

Indica que os processos de atualização do sistema devem sincronizar os registros desta tabela.

managedDatabaseSchema boolean

Indica que o esquema da tabela deve ser atualizado pelos processos de atualização do sistema e de atualização do esquema da base de dados.

tablespace string

Nome do tablespace que deve ser utilizado para criar esta tabela.

indexTablespace string

Nome do tablespace que deve ser utilizado para os índices desta tabela.

errors Array.<string>

Erros na declaração desta tabela que impedem a sua criação ou atualização.

warnings Array.<string>

Alertas que indicam a necessidade de revisar a definição desta tabela, mas que não impedem a sua criação ou atualização.