Documentation
¶
Overview ¶
Package migrations provides migration utilities for the subscription plugin.
Index ¶
- Variables
- func CreateSubscriptionTables(ctx context.Context, db *bun.DB) error
- func DropSubscriptionTables(ctx context.Context, db *bun.DB) error
- type FeaturesMigration
- func (m *FeaturesMigration) ExportFeatures(ctx context.Context, appID xid.ID) ([]byte, error)
- func (m *FeaturesMigration) GetMigrationStatus(ctx context.Context, appID xid.ID) (*MigrationStatus, error)
- func (m *FeaturesMigration) MigrateExistingFeatures(ctx context.Context, appID xid.ID) (*MigrateResult, error)
- func (m *FeaturesMigration) SyncFeatureFromLegacy(ctx context.Context, appID xid.ID, featureKey string) error
- func (m *FeaturesMigration) ValidateMigration(ctx context.Context, appID xid.ID) (bool, []string, error)
- type MigrateResult
- type MigrationStatus
Constants ¶
This section is empty.
Variables ¶
var Migrations = migrate.NewMigrations()
Migrations is the collection of all subscription plugin migrations
Functions ¶
func CreateSubscriptionTables ¶
CreateSubscriptionTables creates all subscription-related tables
Types ¶
type FeaturesMigration ¶
type FeaturesMigration struct {
// contains filtered or unexported fields
}
FeaturesMigration handles migration of existing PlanFeature data to the new Feature system
func NewFeaturesMigration ¶
func NewFeaturesMigration(db *bun.DB, logger forge.Logger) *FeaturesMigration
NewFeaturesMigration creates a new features migration utility
func (*FeaturesMigration) ExportFeatures ¶
ExportFeatures exports features and links to JSON format
func (*FeaturesMigration) GetMigrationStatus ¶
func (m *FeaturesMigration) GetMigrationStatus(ctx context.Context, appID xid.ID) (*MigrationStatus, error)
GetMigrationStatus returns the current migration status for an app
func (*FeaturesMigration) MigrateExistingFeatures ¶
func (m *FeaturesMigration) MigrateExistingFeatures(ctx context.Context, appID xid.ID) (*MigrateResult, error)
MigrateExistingFeatures migrates existing PlanFeature entries to the new Feature system This is a non-destructive operation that creates new Feature entities and links them to plans
func (*FeaturesMigration) SyncFeatureFromLegacy ¶
func (m *FeaturesMigration) SyncFeatureFromLegacy(ctx context.Context, appID xid.ID, featureKey string) error
SyncFeatureFromLegacy syncs a single feature from legacy PlanFeature to the new system
func (*FeaturesMigration) ValidateMigration ¶
func (m *FeaturesMigration) ValidateMigration(ctx context.Context, appID xid.ID) (bool, []string, error)
ValidateMigration checks if all existing PlanFeature entries have corresponding Feature entities and links
type MigrateResult ¶
type MigrateResult struct {
FeaturesCreated int `json:"featuresCreated"`
LinksCreated int `json:"linksCreated"`
Errors []string `json:"errors,omitempty"`
}
MigrateResult contains the results of a migration operation
type MigrationStatus ¶
type MigrationStatus struct {
OldPlanFeaturesCount int `json:"oldPlanFeaturesCount"`
NewFeaturesCount int `json:"newFeaturesCount"`
LinksCount int `json:"linksCount"`
IsValid bool `json:"isValid"`
Issues []string `json:"issues,omitempty"`
}
MigrationStatus represents the current migration status