Documentation
¶
Overview ¶
Package drizzle provides Drizzle ORM integration for pgsquash. It handles Drizzle-generated migrations, identity columns, and drizzle-kit patterns.
Index ¶
- type DrizzleConfig
- type DrizzlePlugin
- func (dp *DrizzlePlugin) ConvertSerialToIdentity(sql string) string
- func (dp *DrizzlePlugin) Detect(migrations []*types.Migration) bool
- func (dp *DrizzlePlugin) DetectPatterns(sql string) []plugins.Pattern
- func (dp *DrizzlePlugin) EnrichStatement(ctx context.Context, stmt *types.Statement) error
- func (dp *DrizzlePlugin) ExtractIdentityType(sql string) (identityType string, found bool)
- func (dp *DrizzlePlugin) FixFunctionVolatility(ctx context.Context, functionSQL string) (string, error)
- func (dp *DrizzlePlugin) GetConflictingPlugins() []string
- func (dp *DrizzlePlugin) GetConsolidationRules() []plugins.ConsolidationRule
- func (dp *DrizzlePlugin) GetRequiredExtensions() []string
- func (dp *DrizzlePlugin) Initialize(ctx context.Context, config any) error
- func (dp *DrizzlePlugin) InjectCompatibilityLayer(ctx context.Context) string
- func (dp *DrizzlePlugin) IsDrizzleGeneratedSQL(sql string) bool
- func (dp *DrizzlePlugin) PreserveIdentityColumns(stmt *types.Statement) bool
- func (dp *DrizzlePlugin) ShouldPreserve(stmt *types.Statement) bool
- func (dp *DrizzlePlugin) TransformSQL(ctx context.Context, sql string) (string, error)
- func (dp *DrizzlePlugin) ValidateSchema(ctx context.Context, db *sql.DB) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DrizzleConfig ¶
type DrizzleConfig struct {
Enabled bool `json:"enabled"`
PreferIdentityColumns bool `json:"prefer_identity_columns"` // Prefer IDENTITY over SERIAL
PreserveDrizzleMeta bool `json:"preserve_drizzle_meta"` // Preserve __drizzle_migrations
OptimizeSequences bool `json:"optimize_sequences"` // Optimize sequence configurations
}
DrizzleConfig holds Drizzle-specific configuration
type DrizzlePlugin ¶
type DrizzlePlugin struct {
*plugins.BasePlugin
// contains filtered or unexported fields
}
DrizzlePlugin implements Drizzle ORM integration
func NewDrizzlePlugin ¶
func NewDrizzlePlugin() *DrizzlePlugin
NewDrizzlePlugin creates a new Drizzle plugin instance
func (*DrizzlePlugin) ConvertSerialToIdentity ¶
func (dp *DrizzlePlugin) ConvertSerialToIdentity(sql string) string
ConvertSerialToIdentity converts old SERIAL columns to modern IDENTITY This is an optional transformation for legacy Drizzle migrations
func (*DrizzlePlugin) Detect ¶
func (dp *DrizzlePlugin) Detect(migrations []*types.Migration) bool
Detect checks if migrations contain Drizzle patterns Detection patterns:
- GENERATED ALWAYS AS IDENTITY (Drizzle's preferred pattern)
- __drizzle_migrations metadata table
- Drizzle folder structure (drizzle/TIMESTAMP_name/)
- snapshot.json metadata files
- Drizzle-specific SQL comments
func (*DrizzlePlugin) DetectPatterns ¶
func (dp *DrizzlePlugin) DetectPatterns(sql string) []plugins.Pattern
DetectPatterns analyzes SQL for Drizzle-specific patterns
func (*DrizzlePlugin) EnrichStatement ¶
EnrichStatement adds Drizzle-specific metadata to parsed statements
func (*DrizzlePlugin) ExtractIdentityType ¶
func (dp *DrizzlePlugin) ExtractIdentityType(sql string) (identityType string, found bool)
ExtractIdentityType extracts the IDENTITY type from SQL
func (*DrizzlePlugin) FixFunctionVolatility ¶
func (dp *DrizzlePlugin) FixFunctionVolatility(ctx context.Context, functionSQL string) (string, error)
FixFunctionVolatility adds volatility markers to Drizzle-generated functions
func (*DrizzlePlugin) GetConflictingPlugins ¶
func (dp *DrizzlePlugin) GetConflictingPlugins() []string
GetConflictingPlugins returns plugins that conflict with Drizzle
func (*DrizzlePlugin) GetConsolidationRules ¶
func (dp *DrizzlePlugin) GetConsolidationRules() []plugins.ConsolidationRule
GetConsolidationRules returns Drizzle-specific consolidation rules
func (*DrizzlePlugin) GetRequiredExtensions ¶
func (dp *DrizzlePlugin) GetRequiredExtensions() []string
GetRequiredExtensions returns PostgreSQL extensions required by Drizzle
func (*DrizzlePlugin) Initialize ¶
func (dp *DrizzlePlugin) Initialize(ctx context.Context, config any) error
Initialize configures the Drizzle plugin
func (*DrizzlePlugin) InjectCompatibilityLayer ¶
func (dp *DrizzlePlugin) InjectCompatibilityLayer(ctx context.Context) string
InjectCompatibilityLayer returns SQL for Drizzle compatibility during validation
func (*DrizzlePlugin) IsDrizzleGeneratedSQL ¶
func (dp *DrizzlePlugin) IsDrizzleGeneratedSQL(sql string) bool
IsDrizzleGeneratedSQL checks if SQL appears to be Drizzle-generated
func (*DrizzlePlugin) PreserveIdentityColumns ¶
func (dp *DrizzlePlugin) PreserveIdentityColumns(stmt *types.Statement) bool
PreserveIdentityColumns checks if statement defines IDENTITY columns that should be preserved
func (*DrizzlePlugin) ShouldPreserve ¶
func (dp *DrizzlePlugin) ShouldPreserve(stmt *types.Statement) bool
ShouldPreserve determines if a statement should never be consolidated
func (*DrizzlePlugin) TransformSQL ¶
TransformSQL performs Drizzle-specific SQL transformations
func (*DrizzlePlugin) ValidateSchema ¶
ValidateSchema performs Drizzle-specific schema validation