Documentation
¶
Index ¶
- func TemplateFunctions() map[string]interface{}
- type AddColumnData
- type AlterColumnDefaultData
- type AlterColumnTypeData
- type AuditColumnData
- type AuditConfig
- type AuditFunctionData
- type AuditTablesData
- type AuditTriggerData
- type ColumnData
- type CommentColumnData
- type CommentTableData
- type CreateForeignKeyData
- type CreateIndexData
- type CreatePrimaryKeyData
- type CreateTableData
- type DropConstraintData
- type DropIndexData
- type MigrationScript
- type MigrationWriter
- type TableAuditConfig
- type TemplateExecutor
- func (te *TemplateExecutor) ExecuteAddColumn(data AddColumnData) (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) ExecuteCreateForeignKey(data CreateForeignKeyData) (string, error)
- func (te *TemplateExecutor) ExecuteCreateIndex(data CreateIndexData) (string, error)
- func (te *TemplateExecutor) ExecuteCreatePrimaryKey(data CreatePrimaryKeyData) (string, error)
- func (te *TemplateExecutor) ExecuteCreateTable(data CreateTableData) (string, error)
- func (te *TemplateExecutor) ExecuteDropConstraint(data DropConstraintData) (string, error)
- func (te *TemplateExecutor) ExecuteDropIndex(data DropIndexData) (string, error)
- type Writer
- func (w *Writer) GenerateDatabaseStatements(db *models.Database) ([]string, error)
- func (w *Writer) GenerateSchemaStatements(schema *models.Schema) ([]string, 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 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 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 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 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 DropConstraintData ¶
DropConstraintData contains data for drop constraint template
type DropIndexData ¶
DropIndexData contains data for drop index template
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 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 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) 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) ExecuteCreateForeignKey ¶
func (te *TemplateExecutor) ExecuteCreateForeignKey(data CreateForeignKeyData) (string, error)
ExecuteCreateForeignKey executes the create foreign key 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) ExecuteCreateTable ¶
func (te *TemplateExecutor) ExecuteCreateTable(data CreateTableData) (string, error)
ExecuteCreateTable executes the create table 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
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) 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) WriteDatabase ¶
WriteDatabase writes the entire database schema as SQL
func (*Writer) WriteSchema ¶
WriteSchema writes a single schema and all its tables