prisma

package
v0.11.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 9, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package prisma provides Prisma ORM integration for pgsquash. It handles Prisma-generated migrations, schema.prisma patterns, and migration metadata.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type PrismaConfig

type PrismaConfig struct {
	Enabled                bool `json:"enabled"`
	PreserveMigrationTable bool `json:"preserve_migration_table"` // Preserve _prisma_migrations
	ShadowDatabase         bool `json:"shadow_database"`          // Handle shadow database patterns
	OptimizeIndices        bool `json:"optimize_indices"`         // Optimize Prisma-generated indices
}

PrismaConfig holds Prisma-specific configuration

type PrismaPlugin

type PrismaPlugin struct {
	*plugins.BasePlugin
	// contains filtered or unexported fields
}

PrismaPlugin implements Prisma ORM integration

func NewPrismaPlugin

func NewPrismaPlugin() *PrismaPlugin

NewPrismaPlugin creates a new Prisma plugin instance

func (*PrismaPlugin) Detect

func (pp *PrismaPlugin) Detect(migrations []*types.Migration) bool

Detect checks if migrations contain Prisma patterns Detection patterns:

  1. _prisma_migrations table (most reliable)
  2. Prisma-style timestamp directory structure (migrations/20210313140442_init/)
  3. Prisma schema comments (-- CreateTable, -- CreateIndex, etc.)
  4. Prisma-specific naming patterns (autoincrement vs SERIAL preference)

func (*PrismaPlugin) DetectPatterns

func (pp *PrismaPlugin) DetectPatterns(sql string) []plugins.Pattern

DetectPatterns analyzes SQL for Prisma-specific patterns

func (*PrismaPlugin) EnrichStatement

func (pp *PrismaPlugin) EnrichStatement(ctx context.Context, stmt *types.Statement) error

EnrichStatement adds Prisma-specific metadata to parsed statements

func (*PrismaPlugin) ExtractPrismaComment

func (pp *PrismaPlugin) ExtractPrismaComment(sql string) (action string, target string, found bool)

ExtractPrismaComment extracts Prisma action from migration comment

func (*PrismaPlugin) FixFunctionVolatility

func (pp *PrismaPlugin) FixFunctionVolatility(ctx context.Context, functionSQL string) (string, error)

FixFunctionVolatility adds volatility markers to Prisma-generated functions Prisma rarely generates custom functions, but if it does, they should be marked

func (*PrismaPlugin) GeneratePrismaMetadata

func (pp *PrismaPlugin) GeneratePrismaMetadata(tableName string, action string) string

GeneratePrismaMetadata creates metadata for Prisma migrations

func (*PrismaPlugin) GetConflictingPlugins

func (pp *PrismaPlugin) GetConflictingPlugins() []string

GetConflictingPlugins returns plugins that conflict with Prisma

func (*PrismaPlugin) GetConsolidationRules

func (pp *PrismaPlugin) GetConsolidationRules() []plugins.ConsolidationRule

GetConsolidationRules returns Prisma-specific consolidation rules

func (*PrismaPlugin) GetRequiredExtensions

func (pp *PrismaPlugin) GetRequiredExtensions() []string

GetRequiredExtensions returns PostgreSQL extensions required by Prisma

func (*PrismaPlugin) Initialize

func (pp *PrismaPlugin) Initialize(ctx context.Context, config any) error

Initialize configures the Prisma plugin

func (*PrismaPlugin) InjectCompatibilityLayer

func (pp *PrismaPlugin) InjectCompatibilityLayer(ctx context.Context) string

InjectCompatibilityLayer returns SQL for Prisma compatibility during validation

func (*PrismaPlugin) IsPrismaGeneratedSQL

func (pp *PrismaPlugin) IsPrismaGeneratedSQL(sql string) bool

IsPrismaGeneratedSQL checks if SQL appears to be Prisma-generated

func (*PrismaPlugin) ShouldPreserve

func (pp *PrismaPlugin) ShouldPreserve(stmt *types.Statement) bool

ShouldPreserve determines if a statement should never be consolidated

func (*PrismaPlugin) TransformSQL

func (pp *PrismaPlugin) TransformSQL(ctx context.Context, sql string) (string, error)

TransformSQL performs Prisma-specific SQL transformations

func (*PrismaPlugin) ValidateSchema

func (pp *PrismaPlugin) ValidateSchema(ctx context.Context, db *sql.DB) error

ValidateSchema performs Prisma-specific schema validation

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL