Documentation
¶
Index ¶
- func TemplateFunctions() map[string]interface{}
- type AddColumnData
- type AddColumnWithCheckData
- type AlterColumnDefaultData
- type AlterColumnTypeData
- type AuditColumnData
- type AuditConfig
- type AuditFunctionData
- type AuditTablesData
- type AuditTriggerData
- type ColumnData
- type CommentColumnData
- type CommentTableData
- type CreateCheckConstraintData
- type CreateForeignKeyData
- type CreateForeignKeyWithCheckData
- type CreateIndexData
- type CreatePrimaryKeyData
- type CreatePrimaryKeyWithAutoGenCheckData
- type CreateSequenceData
- type CreateTableData
- type CreateUniqueConstraintData
- type DropConstraintData
- type DropIndexData
- type ExecutionError
- type ExecutionReport
- type MigrationScript
- type MigrationWriter
- type SchemaReport
- type SetSequenceValueData
- type TableAuditConfig
- type TableReport
- type TemplateExecutor
- func (te *TemplateExecutor) ExecuteAddColumn(data AddColumnData) (string, error)
- func (te *TemplateExecutor) ExecuteAddColumnWithCheck(data AddColumnWithCheckData) (string, error)
- func (te *TemplateExecutor) ExecuteAlterColumnDefault(data AlterColumnDefaultData) (string, error)
- func (te *TemplateExecutor) ExecuteAlterColumnType(data AlterColumnTypeData) (string, error)
- func (te *TemplateExecutor) ExecuteAuditFunction(data AuditFunctionData) (string, error)
- func (te *TemplateExecutor) ExecuteAuditTables(data AuditTablesData) (string, error)
- func (te *TemplateExecutor) ExecuteAuditTrigger(data AuditTriggerData) (string, error)
- func (te *TemplateExecutor) ExecuteCommentColumn(data CommentColumnData) (string, error)
- func (te *TemplateExecutor) ExecuteCommentTable(data CommentTableData) (string, error)
- func (te *TemplateExecutor) ExecuteCreateCheckConstraint(data CreateCheckConstraintData) (string, error)
- func (te *TemplateExecutor) ExecuteCreateForeignKey(data CreateForeignKeyData) (string, error)
- func (te *TemplateExecutor) ExecuteCreateForeignKeyWithCheck(data CreateForeignKeyWithCheckData) (string, error)
- func (te *TemplateExecutor) ExecuteCreateIndex(data CreateIndexData) (string, error)
- func (te *TemplateExecutor) ExecuteCreatePrimaryKey(data CreatePrimaryKeyData) (string, error)
- func (te *TemplateExecutor) ExecuteCreatePrimaryKeyWithAutoGenCheck(data CreatePrimaryKeyWithAutoGenCheckData) (string, error)
- func (te *TemplateExecutor) ExecuteCreateSequence(data CreateSequenceData) (string, error)
- func (te *TemplateExecutor) ExecuteCreateTable(data CreateTableData) (string, error)
- func (te *TemplateExecutor) ExecuteCreateUniqueConstraint(data CreateUniqueConstraintData) (string, error)
- func (te *TemplateExecutor) ExecuteDropConstraint(data DropConstraintData) (string, error)
- func (te *TemplateExecutor) ExecuteDropIndex(data DropIndexData) (string, error)
- func (te *TemplateExecutor) ExecuteSetSequenceValue(data SetSequenceValueData) (string, error)
- type Writer
- func (w *Writer) GenerateAddColumnStatements(schema *models.Schema) ([]string, error)
- func (w *Writer) GenerateAddColumnsForDatabase(db *models.Database) ([]string, error)
- func (w *Writer) GenerateDatabaseStatements(db *models.Database) ([]string, error)
- func (w *Writer) GenerateSchemaStatements(schema *models.Schema) ([]string, error)
- func (w *Writer) WriteAddColumnStatements(db *models.Database) error
- func (w *Writer) WriteDatabase(db *models.Database) error
- func (w *Writer) WriteSchema(schema *models.Schema) error
- func (w *Writer) WriteTable(table *models.Table) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func TemplateFunctions ¶
func TemplateFunctions() map[string]interface{}
TemplateFunctions returns a map of custom template functions
Types ¶
type AddColumnData ¶
type AddColumnData struct {
SchemaName string
TableName string
ColumnName string
ColumnType string
Default string
NotNull bool
}
AddColumnData contains data for add column template
type AddColumnWithCheckData ¶ added in v1.0.26
type AddColumnWithCheckData struct {
SchemaName string
TableName string
ColumnName string
ColumnDefinition string
}
AddColumnWithCheckData contains data for add column with existence check template
type AlterColumnDefaultData ¶
type AlterColumnDefaultData struct {
SchemaName string
TableName string
ColumnName string
SetDefault bool
DefaultValue string
}
AlterColumnDefaultData contains data for alter column default template
type AlterColumnTypeData ¶
type AlterColumnTypeData struct {
SchemaName string
TableName string
ColumnName string
NewType string
}
AlterColumnTypeData contains data for alter column type template
type AuditColumnData ¶
AuditColumnData represents a column in audit template
type AuditConfig ¶
type AuditConfig struct {
// EnabledTables maps table names (schema.table or just table) to audit settings
EnabledTables map[string]*TableAuditConfig
// AuditSchema is where audit tables are created (default: same as table schema)
AuditSchema string
// UserFunction is the function to get current user (default: current_user)
UserFunction string
}
AuditConfig defines audit configuration for tables
func NewAuditConfig ¶
func NewAuditConfig() *AuditConfig
NewAuditConfig creates a default audit configuration
func (*AuditConfig) EnableTableAudit ¶
func (ac *AuditConfig) EnableTableAudit(schemaName, tableName string) *TableAuditConfig
EnableTableAudit enables audit for a specific table
func (*AuditConfig) GetTableConfig ¶
func (ac *AuditConfig) GetTableConfig(schemaName, tableName string) *TableAuditConfig
GetTableConfig returns the audit config for a specific table
func (*AuditConfig) IsTableAudited ¶
func (ac *AuditConfig) IsTableAudited(schemaName, tableName string) bool
IsTableAudited checks if a table is configured for auditing
type AuditFunctionData ¶
type AuditFunctionData struct {
SchemaName string
FunctionName string
TableName string
TablePrefix string
PrimaryKey string
AuditSchema string
UserFunction string
AuditInsert bool
AuditUpdate bool
AuditDelete bool
UpdateCondition string
UpdateColumns []AuditColumnData
DeleteColumns []AuditColumnData
}
AuditFunctionData contains data for audit function template
func BuildAuditFunctionData ¶
func BuildAuditFunctionData( schemaName string, table *models.Table, pk *models.Column, config *TableAuditConfig, auditSchema string, userFunction string, ) AuditFunctionData
BuildAuditFunctionData builds AuditFunctionData from table and config
type AuditTablesData ¶
type AuditTablesData struct {
AuditSchema string
}
AuditTablesData contains data for audit tables template
type AuditTriggerData ¶
type AuditTriggerData struct {
SchemaName string
TableName string
TriggerName string
FunctionName string
Events string
}
AuditTriggerData contains data for audit trigger template
type ColumnData ¶
ColumnData represents column information
type CommentColumnData ¶
type CommentColumnData struct {
SchemaName string
TableName string
ColumnName string
Comment string
}
CommentColumnData contains data for column comment template
type CommentTableData ¶
CommentTableData contains data for table comment template
type CreateCheckConstraintData ¶ added in v1.0.26
type CreateCheckConstraintData struct {
SchemaName string
TableName string
ConstraintName string
Expression string
}
CreateCheckConstraintData contains data for create check constraint template
type CreateForeignKeyData ¶
type CreateForeignKeyData struct {
SchemaName string
TableName string
ConstraintName string
SourceColumns string
TargetSchema string
TargetTable string
TargetColumns string
OnDelete string
OnUpdate string
}
CreateForeignKeyData contains data for create foreign key template
type CreateForeignKeyWithCheckData ¶ added in v1.0.26
type CreateForeignKeyWithCheckData struct {
SchemaName string
TableName string
ConstraintName string
SourceColumns string
TargetSchema string
TargetTable string
TargetColumns string
OnDelete string
OnUpdate string
Deferrable bool
}
CreateForeignKeyWithCheckData contains data for create foreign key with existence check template
type CreateIndexData ¶
type CreateIndexData struct {
SchemaName string
TableName string
IndexName string
IndexType string
Columns string
Unique bool
}
CreateIndexData contains data for create index template
type CreatePrimaryKeyData ¶
type CreatePrimaryKeyData struct {
SchemaName string
TableName string
ConstraintName string
Columns string
}
CreatePrimaryKeyData contains data for create primary key template
type CreatePrimaryKeyWithAutoGenCheckData ¶ added in v1.0.26
type CreatePrimaryKeyWithAutoGenCheckData struct {
SchemaName string
TableName string
ConstraintName string
AutoGenNames string // Comma-separated list of names like "'name1', 'name2'"
Columns string
}
CreatePrimaryKeyWithAutoGenCheckData contains data for primary key with auto-generated key check template
type CreateSequenceData ¶ added in v1.0.26
type CreateSequenceData struct {
SchemaName string
SequenceName string
Increment int
MinValue int64
MaxValue int64
StartValue int64
CacheSize int
}
CreateSequenceData contains data for create sequence template
type CreateTableData ¶
type CreateTableData struct {
SchemaName string
TableName string
Columns []ColumnData
}
CreateTableData contains data for create table template
func BuildCreateTableData ¶
func BuildCreateTableData(schemaName string, table *models.Table) CreateTableData
BuildCreateTableData builds CreateTableData from a models.Table
type CreateUniqueConstraintData ¶ added in v1.0.26
type CreateUniqueConstraintData struct {
SchemaName string
TableName string
ConstraintName string
Columns string
}
CreateUniqueConstraintData contains data for create unique constraint template
type DropConstraintData ¶
DropConstraintData contains data for drop constraint template
type DropIndexData ¶
DropIndexData contains data for drop index template
type ExecutionError ¶ added in v1.0.15
type ExecutionError struct {
StatementNumber int `json:"statement_number"`
Statement string `json:"statement"`
Error string `json:"error"`
}
ExecutionError represents a failed statement
type ExecutionReport ¶ added in v1.0.15
type ExecutionReport struct {
TotalStatements int `json:"total_statements"`
ExecutedStatements int `json:"executed_statements"`
FailedStatements int `json:"failed_statements"`
Schemas []SchemaReport `json:"schemas"`
Errors []ExecutionError `json:"errors,omitempty"`
StartTime string `json:"start_time"`
EndTime string `json:"end_time"`
}
ExecutionReport tracks the execution status of SQL statements
type MigrationScript ¶
type MigrationScript struct {
ObjectName string
ObjectType string
Schema string
Priority int
Sequence int
Body string
}
MigrationScript represents a single migration script with priority
type MigrationWriter ¶
type MigrationWriter struct {
// contains filtered or unexported fields
}
MigrationWriter generates differential migration SQL scripts using templates
func NewMigrationWriter ¶
func NewMigrationWriter(options *writers.WriterOptions) (*MigrationWriter, error)
NewMigrationWriter creates a new templated migration writer
func (*MigrationWriter) WriteMigration ¶
WriteMigration generates migration scripts using templates
type SchemaReport ¶ added in v1.0.15
type SchemaReport struct {
Name string `json:"name"`
Tables []TableReport `json:"tables"`
}
SchemaReport tracks execution per schema
type SetSequenceValueData ¶ added in v1.0.26
type SetSequenceValueData struct {
SchemaName string
TableName string
SequenceName string
ColumnName string
}
SetSequenceValueData contains data for set sequence value template
type TableAuditConfig ¶
type TableAuditConfig struct {
// TableName is the name of the table to audit
TableName string
// SchemaName is the schema of the table
SchemaName string
// TablePrefix for compatibility with old audit system
TablePrefix string
// AuditInsert tracks INSERT operations
AuditInsert bool
// AuditUpdate tracks UPDATE operations
AuditUpdate bool
// AuditDelete tracks DELETE operations
AuditDelete bool
// ExcludedColumns are columns to skip from audit
ExcludedColumns []string
// EncryptedColumns are columns to hide in audit (show as ***)
EncryptedColumns []string
}
TableAuditConfig defines audit settings for a specific table
type TableReport ¶ added in v1.0.15
type TableReport struct {
Name string `json:"name"`
Created bool `json:"created"`
Error string `json:"error,omitempty"`
}
TableReport tracks execution per table
type TemplateExecutor ¶
type TemplateExecutor struct {
// contains filtered or unexported fields
}
TemplateExecutor manages and executes SQL templates
func NewTemplateExecutor ¶
func NewTemplateExecutor() (*TemplateExecutor, error)
NewTemplateExecutor creates a new template executor
func (*TemplateExecutor) ExecuteAddColumn ¶
func (te *TemplateExecutor) ExecuteAddColumn(data AddColumnData) (string, error)
ExecuteAddColumn executes the add column template
func (*TemplateExecutor) ExecuteAddColumnWithCheck ¶ added in v1.0.26
func (te *TemplateExecutor) ExecuteAddColumnWithCheck(data AddColumnWithCheckData) (string, error)
ExecuteAddColumnWithCheck executes the add column with check template
func (*TemplateExecutor) ExecuteAlterColumnDefault ¶
func (te *TemplateExecutor) ExecuteAlterColumnDefault(data AlterColumnDefaultData) (string, error)
ExecuteAlterColumnDefault executes the alter column default template
func (*TemplateExecutor) ExecuteAlterColumnType ¶
func (te *TemplateExecutor) ExecuteAlterColumnType(data AlterColumnTypeData) (string, error)
ExecuteAlterColumnType executes the alter column type template
func (*TemplateExecutor) ExecuteAuditFunction ¶
func (te *TemplateExecutor) ExecuteAuditFunction(data AuditFunctionData) (string, error)
ExecuteAuditFunction executes the audit function template
func (*TemplateExecutor) ExecuteAuditTables ¶
func (te *TemplateExecutor) ExecuteAuditTables(data AuditTablesData) (string, error)
ExecuteAuditTables executes the audit tables template
func (*TemplateExecutor) ExecuteAuditTrigger ¶
func (te *TemplateExecutor) ExecuteAuditTrigger(data AuditTriggerData) (string, error)
ExecuteAuditTrigger executes the audit trigger template
func (*TemplateExecutor) ExecuteCommentColumn ¶
func (te *TemplateExecutor) ExecuteCommentColumn(data CommentColumnData) (string, error)
ExecuteCommentColumn executes the column comment template
func (*TemplateExecutor) ExecuteCommentTable ¶
func (te *TemplateExecutor) ExecuteCommentTable(data CommentTableData) (string, error)
ExecuteCommentTable executes the table comment template
func (*TemplateExecutor) ExecuteCreateCheckConstraint ¶ added in v1.0.26
func (te *TemplateExecutor) ExecuteCreateCheckConstraint(data CreateCheckConstraintData) (string, error)
ExecuteCreateCheckConstraint executes the create check constraint template
func (*TemplateExecutor) ExecuteCreateForeignKey ¶
func (te *TemplateExecutor) ExecuteCreateForeignKey(data CreateForeignKeyData) (string, error)
ExecuteCreateForeignKey executes the create foreign key template
func (*TemplateExecutor) ExecuteCreateForeignKeyWithCheck ¶ added in v1.0.26
func (te *TemplateExecutor) ExecuteCreateForeignKeyWithCheck(data CreateForeignKeyWithCheckData) (string, error)
ExecuteCreateForeignKeyWithCheck executes the create foreign key with check template
func (*TemplateExecutor) ExecuteCreateIndex ¶
func (te *TemplateExecutor) ExecuteCreateIndex(data CreateIndexData) (string, error)
ExecuteCreateIndex executes the create index template
func (*TemplateExecutor) ExecuteCreatePrimaryKey ¶
func (te *TemplateExecutor) ExecuteCreatePrimaryKey(data CreatePrimaryKeyData) (string, error)
ExecuteCreatePrimaryKey executes the create primary key template
func (*TemplateExecutor) ExecuteCreatePrimaryKeyWithAutoGenCheck ¶ added in v1.0.26
func (te *TemplateExecutor) ExecuteCreatePrimaryKeyWithAutoGenCheck(data CreatePrimaryKeyWithAutoGenCheckData) (string, error)
ExecuteCreatePrimaryKeyWithAutoGenCheck executes the create primary key with auto-generated key check template
func (*TemplateExecutor) ExecuteCreateSequence ¶ added in v1.0.26
func (te *TemplateExecutor) ExecuteCreateSequence(data CreateSequenceData) (string, error)
ExecuteCreateSequence executes the create sequence template
func (*TemplateExecutor) ExecuteCreateTable ¶
func (te *TemplateExecutor) ExecuteCreateTable(data CreateTableData) (string, error)
ExecuteCreateTable executes the create table template
func (*TemplateExecutor) ExecuteCreateUniqueConstraint ¶ added in v1.0.26
func (te *TemplateExecutor) ExecuteCreateUniqueConstraint(data CreateUniqueConstraintData) (string, error)
ExecuteCreateUniqueConstraint executes the create unique constraint template
func (*TemplateExecutor) ExecuteDropConstraint ¶
func (te *TemplateExecutor) ExecuteDropConstraint(data DropConstraintData) (string, error)
ExecuteDropConstraint executes the drop constraint template
func (*TemplateExecutor) ExecuteDropIndex ¶
func (te *TemplateExecutor) ExecuteDropIndex(data DropIndexData) (string, error)
ExecuteDropIndex executes the drop index template
func (*TemplateExecutor) ExecuteSetSequenceValue ¶ added in v1.0.26
func (te *TemplateExecutor) ExecuteSetSequenceValue(data SetSequenceValueData) (string, error)
ExecuteSetSequenceValue executes the set sequence value template
type Writer ¶
type Writer struct {
// contains filtered or unexported fields
}
Writer implements the Writer interface for PostgreSQL SQL output
func NewWriter ¶
func NewWriter(options *writers.WriterOptions) *Writer
NewWriter creates a new PostgreSQL SQL writer
func (*Writer) GenerateAddColumnStatements ¶ added in v1.0.19
GenerateAddColumnStatements generates ALTER TABLE ADD COLUMN statements for existing tables This is useful for schema evolution when new columns are added to existing tables
func (*Writer) GenerateAddColumnsForDatabase ¶ added in v1.0.19
GenerateAddColumnsForDatabase generates ALTER TABLE ADD COLUMN statements for the entire database
func (*Writer) GenerateDatabaseStatements ¶
GenerateDatabaseStatements generates SQL statements as a list for the entire database Returns a slice of SQL statements that can be executed independently
func (*Writer) GenerateSchemaStatements ¶
GenerateSchemaStatements generates SQL statements as a list for a single schema
func (*Writer) WriteAddColumnStatements ¶ added in v1.0.19
WriteAddColumnStatements writes ALTER TABLE ADD COLUMN statements for a database This is used for schema evolution/migration when new columns are added
func (*Writer) WriteDatabase ¶
WriteDatabase writes the entire database schema as SQL
func (*Writer) WriteSchema ¶
WriteSchema writes a single schema and all its tables