Skip to main content

API Reference

This page documents every public type, interface, and attribute that consumers of MetaDbDiff interact with directly.


MIK (MetaInfo Kind) — Internal Schema Model

Defined in MetaDbDiff.Database.Mapping.

TMetaInfoKind

Abstract base for all MIK objects.

MemberTypeDescription
Descriptionstring (r/w)Human-readable description

TColumnMIK

Represents a database column inside a TTableMIK.

PropertyTypeDescription
TableTTableMIKOwning table
Namestring (r/w)Column name
PositionInteger (r/w)Ordinal column position
FieldTypeTFieldType (r/w)Delphi field type
TypeNamestring (r/w)Native database type name
SizeInteger (r/w)Character/byte length
PrecisionInteger (r/w)Numeric precision
ScaleInteger (r/w)Numeric scale
NotNullBoolean (r/w)NOT NULL constraint
AutoIncrementBoolean (r/w)Auto-increment flag
SortingOrderTSortingOrder (r/w)ASC / DESC / NoSort
DefaultValuestring (r/w)Column default expression
IsPrimaryKeyBoolean (r/w)Whether column is part of the PK
CharSetstring (r/w)Character set (e.g., UTF8)

TTableMIK

Represents a database table.

PropertyTypeDescription
Namestring (r/w)Table name
Descriptionstring (r/w)Optional description
FieldsTObjectDictionary<string, TColumnMIK> (r)Column map (key = column name upper-case)
PrimaryKeyTPrimaryKeyMIK (r/w)Primary key descriptor
IndexeKeysTObjectDictionary<string, TIndexeKeyMIK> (r)Index map
ForeignKeysTObjectDictionary<string, TForeignKeyMIK> (r)FK map
ChecksTObjectDictionary<string, TCheckMIK> (r)CHECK constraint map
TriggersTObjectDictionary<string, TTriggerMIK> (r)Trigger map
DatabaseTCatalogMetadataMIK (r)Owning catalog
FieldsSortTArray<TPair<string, TColumnMIK>>Returns columns sorted alphabetically by key

TPrimaryKeyMIK

PropertyTypeDescription
Namestring (r/w)Constraint name (e.g., PK_CUSTOMERS)
AutoIncrementBoolean (r/w)Auto-increment flag
FieldsTObjectDictionary<string, TColumnMIK> (r)Column map
TableTTableMIK (r)Owning table
FieldsSortTArray<TPair<string, TColumnMIK>>Columns sorted alphabetically

TForeignKeyMIK

PropertyTypeDescription
Namestring (r/w)Constraint name
FromTablestring (r/w)Referencing table name
FromFieldsTObjectDictionary<string, TColumnMIK> (r)Referencing column map
ToFieldsTObjectDictionary<string, TColumnMIK> (r)Referenced column map
OnUpdateTRuleAction (r/w)Referential update action
OnDeleteTRuleAction (r/w)Referential delete action
TableTTableMIK (r)Owning table
FromFieldsSortTArray<TPair<string, TColumnMIK>>Referencing columns sorted
ToFieldsSortTArray<TPair<string, TColumnMIK>>Referenced columns sorted

TIndexeKeyMIK

PropertyTypeDescription
Namestring (r/w)Index name
UniqueBoolean (r/w)Unique index flag
FieldsTObjectDictionary<string, TColumnMIK> (r)Index column map
TableTTableMIK (r)Owning table
FieldsSortTArray<TPair<string, TColumnMIK>>Columns sorted alphabetically

TSequenceMIK

PropertyTypeDescription
Namestring (r/w)Sequence / generator name
InitialValueInteger (r/w)Starting value
IncrementInteger (r/w)Increment step
TableNamestring (r/w)Associated table (if any)
DatabaseTCatalogMetadataMIK (r)Owning catalog

TCheckMIK

PropertyTypeDescription
Namestring (r/w)Constraint name
Conditionstring (r/w)CHECK expression
TableTTableMIK (r)Owning table

TTriggerMIK

PropertyTypeDescription
Namestring (r/w)Trigger name
Scriptstring (r/w)Trigger body
TableTTableMIK (r)Owning table

TViewMIK

PropertyTypeDescription
Namestring (r/w)View name
Scriptstring (r/w)View SELECT script
FieldsTObjectDictionary<string, TColumnMIK> (r/w)Column map
DatabaseTCatalogMetadataMIK (r)Owning catalog

TCatalogMetadataMIK

PropertyTypeDescription
Namestring (r/w)Catalog/database name
Schemastring (r/w)Schema name
TablesTObjectDictionary<string, TTableMIK> (r)Table map
SequencesTObjectDictionary<string, TSequenceMIK> (r)Sequence map
ViewsTObjectDictionary<string, TViewMIK> (r)View map
TablesSortTArray<TPair<string, TTableMIK>>Tables sorted alphabetically
ClearprocedureEmpties tables and sequences

DDL Generator Interface

Defined in MetaDbDiff.DDL.Interfaces.

IDDLGeneratorCommand

Every DDL dialect driver implements this interface.

MethodDescription
GenerateCreateTable(ATable)CREATE TABLE with all columns, PK, indexes, FKs, checks
GenerateCreateColumn(AColumn)ALTER TABLE ... ADD COLUMN
GenerateCreatePrimaryKey(APK)ALTER TABLE ... ADD CONSTRAINT PK_...
GenerateCreateForeignKey(AFK)ALTER TABLE ... ADD CONSTRAINT FK_...
GenerateCreateSequence(ASeq)CREATE SEQUENCE / GENERATOR ...
GenerateCreateIndexe(AIdx)CREATE [UNIQUE] INDEX ...
GenerateCreateCheck(ACheck)ALTER TABLE ... ADD CONSTRAINT CHK_...
GenerateCreateView(AView)CREATE OR REPLACE VIEW ...
GenerateCreateTrigger(ATrig)CREATE TRIGGER ...
GenerateAlterColumn(AColumn)ALTER TABLE ... ALTER COLUMN
GenerateAlterColumnPosition(AColumn)Reorder column (dialect-dependent)
GenerateAlterDefaultValue(AColumn)Set column default
GenerateAlterCheck(ACheck)Drop + recreate CHECK
GenerateDropTable(ATable)DROP TABLE
GenerateDropPrimaryKey(APK)ALTER TABLE ... DROP CONSTRAINT PK_...
GenerateDropForeignKey(AFK)ALTER TABLE ... DROP CONSTRAINT FK_...
GenerateDropSequence(ASeq)DROP SEQUENCE / GENERATOR ...
GenerateDropIndexe(AIdx)DROP INDEX ...
GenerateDropCheck(ACheck)ALTER TABLE ... DROP CONSTRAINT CHK_...
GenerateDropView(AView)DROP VIEW ...
GenerateDropTrigger(ATrig)DROP TRIGGER ...
GenerateDropColumn(AColumn)ALTER TABLE ... DROP COLUMN
GenerateDropDefaultValue(AColumn)Drop column default
GenerateEnableForeignKeys(AEnable)Disable/enable all FK constraints
GenerateEnableTriggers(AEnable)Disable/enable all triggers
SupportedFeaturesTSupportedFeatures set — Sequences, ForeignKeys, Checks, Views, Triggers

Database Compare Classes

IDatabaseCompare (interface, MetaDbDiff.Database.Interfaces)

MemberTypeDescription
BuildDatabaseprocedureRun the full compare+generate pipeline
GetCommandListTArray<TDDLCommand>Retrieve generated DDL command list
GeneratorCommandIDDLGeneratorCommandThe dialect-specific generator
CommandsAutoExecuteBoolean (r/w)If True, execute DDL on target immediately
ComparerFieldPositionBoolean (r/w)If True, also reorder columns

TDatabaseCompare (MetaDbDiff.Database.Compare)

Concrete class for Database-to-Database comparison.

constructor Create(AConnMaster, AConnTarget: IDBConnection); overload;

Connects both databases on construction and raises if either fails to connect.


Mapping Attributes

Defined in MetaDbDiff.Mapping.Attributes. These decorate Delphi entity classes for Model-to-Database mode.

AttributeConstructor signatureDescription
EntityCreate(AName, ASchemaName: string)Marks a class as a mapped entity
TableCreate(AName: string)Maps the class to a physical table
ViewCreate(AName: string)Maps the class to a database view
ColumnCreate(AColumnName, AFieldType, ASize)Column mapping with optional size/precision/scale
PrimaryKeyCreate(AColumns, AAutoIncType, AGeneratorType, ...)PK definition
ForeignKeyCreate(AName, AFromColumns, ATableNameRef, AToColumns, ARuleDelete, ARuleUpdate)FK definition
IndexeCreate(AName, AColumns, ASortingOrder, AUnique)Index definition
SequenceCreate(AName, AInitial, AIncrement)Sequence/generator definition
CheckCreate(AName, ACondition)CHECK constraint
AssociationCreate(AMultiplicity, AColumnsName, ATableNameRef, AColumnsNameRef)ORM relationship
JoinColumnCreate(AColumnName, ARefTableName, ARefColumnName, ARefColumnNameSelect, AJoin)JOIN mapping
CascadeActionsCreate(ACascadeActions: TCascadeActions)Cascade delete/update behaviour
TriggerCreate(AName, ATableName)Trigger mapping
DictionaryCreate(ADisplayLabel, AConstraintErrorMessage)UI metadata / display hints
OrderByCreate(AColumnsName)Default ORDER BY clause
RestrictionsCreate(ARestrictions: TRestrictions)Row-level filter restrictions
NotNullConstraintCreateValidates field is not null/empty
MinimumValueConstraintCreate(AValue: Double)Validates minimum numeric value
MaximumValueConstraintCreate(AValue: Double)Validates maximum numeric value
NotEmptyCreateValidates string/numeric field is not empty/zero
SizeCreate(Max, Min: Integer)Validates string length range
NullIfEmptyConverts empty string to null
CalcFieldCreate(AFieldName, AFieldType, ASize, AHidden)Calculated field mapping
AggregateFieldCreate(AFieldName, AExpression, AAlignment, ADisplayFormat)Aggregate/display field
EnumerationCreate(AEnumType, AEnumValues)Enum column mapping
FieldEventsCreate(AFieldEvents: TFieldEvents)Field-level event hooks

Mapping Classes (MetaDbDiff.Mapping.Classes)

Internal runtime representation of attributes — populated by RTTI exploration.

ClassEquivalent attribute
TTableMappingTable
TColumnMappingColumn
TPrimaryKeyMappingPrimaryKey
TForeignKeyMappingForeignKey
TIndexeMappingIndexe
TSequenceMappingSequence
TCheckMappingCheck
TTriggerMappingTrigger
TAssociationMappingAssociation
TJoinColumnMappingJoinColumn
TViewMappingView
TEnumerationMappingEnumeration
TCalcFieldMappingCalcField
TFieldEventsMappingFieldEvents
TRestrictionMappingRestrictions
TOrderByMappingOrderBy

Types (MetaDbDiff.Types.Mapping)

Key enumerations used across attributes and MIK objects.

TypeMembers
TSortingOrderNoSort, Ascending, Descending
TMultiplicityOneToOne, OneToMany, ManyToOne, ManyToMany
TRuleActionNone, Cascade, SetNull, SetDefault
TGeneratorTypeNoneInc, SequenceInc, TableInc, GuidInc (deprecated), Guid38Inc, Guid36Inc, Guid32Inc
TAutoIncTypeNotInc, AutoInc
TGeneratedNever, Insert, Always
TJoinInnerJoin, LeftJoin, RightJoin, FullJoin
TRestrictionNotNull, NoInsert, NoUpdate, NoValidate, Unique, Hidden, VirtualData
TCascadeActionCascadeNone, CascadeAutoInc, CascadeInsert, CascadeUpdate, CascadeDelete
TMasterEventAutoPost, AutoEdit, AutoInsert
TEnumTypeetChar, etString, etInteger, etBoolean
TFieldEventonChange, onGetText, onSetText, onValidate
TSupportedFeatureSequences, ForeignKeys, Checks, Views, Triggers