diff --git a/taco/internal/query/types/models.go b/taco/internal/query/types/models.go index 1cb380c67..7d153eb31 100644 --- a/taco/internal/query/types/models.go +++ b/taco/internal/query/types/models.go @@ -253,7 +253,7 @@ type TFERun struct { // Relationships (foreign keys) ConfigurationVersionID string `gorm:"type:varchar(36);not null;index"` - PlanID *string `gorm:"type:varchar(36);index"` // Nullable until plan is created + PlanID *string `gorm:"type:varchar(50);index"` // Nullable until plan is created ApplyID *string `gorm:"type:varchar(36);index"` // Nullable if plan-only // Blob storage references @@ -283,7 +283,7 @@ func (TFERun) TableName() string { return "tfe_runs" } // TFE Plan model - represents a Terraform plan execution type TFEPlan struct { - ID string `gorm:"type:varchar(36);primaryKey"` + ID string `gorm:"type:varchar(50);primaryKey"` // TFE-style ID: plan-{32chars} OrgID string `gorm:"type:varchar(36);index;not null"` RunID string `gorm:"type:varchar(36);not null;index"` CreatedAt time.Time `gorm:"autoCreateTime"` diff --git a/taco/migrations/mysql/20251120000000_fix_plan_id_column_size.sql b/taco/migrations/mysql/20251120000000_fix_plan_id_column_size.sql new file mode 100644 index 000000000..557d9b93d --- /dev/null +++ b/taco/migrations/mysql/20251120000000_fix_plan_id_column_size.sql @@ -0,0 +1,12 @@ +-- Fix plan ID columns that are too small for TFE-style IDs +-- TFE plan IDs use format: plan-{32chars} = 37 characters total +-- Original varchar(36) is too small and causes INSERT errors + +-- Fix tfe_plans.id (primary key) +ALTER TABLE `tfe_plans` + MODIFY COLUMN `id` varchar(50) NOT NULL; + +-- Fix tfe_runs.plan_id (foreign key reference) +ALTER TABLE `tfe_runs` + MODIFY COLUMN `plan_id` varchar(50); + diff --git a/taco/migrations/postgres/20251120000000_fix_plan_id_column_size.sql b/taco/migrations/postgres/20251120000000_fix_plan_id_column_size.sql new file mode 100644 index 000000000..a4dfc622a --- /dev/null +++ b/taco/migrations/postgres/20251120000000_fix_plan_id_column_size.sql @@ -0,0 +1,12 @@ +-- Fix plan ID columns that are too small for TFE-style IDs +-- TFE plan IDs use format: plan-{32chars} = 37 characters total +-- Original varchar(36) is too small and causes INSERT errors + +-- Fix tfe_plans.id (primary key) +ALTER TABLE "public"."tfe_plans" + ALTER COLUMN "id" TYPE varchar(50); + +-- Fix tfe_runs.plan_id (foreign key reference) +ALTER TABLE "public"."tfe_runs" + ALTER COLUMN "plan_id" TYPE varchar(50); + diff --git a/taco/migrations/sqlite/20251120000000_fix_plan_id_column_size.sql b/taco/migrations/sqlite/20251120000000_fix_plan_id_column_size.sql new file mode 100644 index 000000000..3680f43cc --- /dev/null +++ b/taco/migrations/sqlite/20251120000000_fix_plan_id_column_size.sql @@ -0,0 +1,6 @@ +-- Fix plan ID columns that are too small for TFE-style IDs +-- TFE plan IDs use format: plan-{32chars} = 37 characters total + +-- SQLite note: SQLite doesn't enforce varchar lengths +-- No schema changes needed - this file exists only for version consistency +