migrate

package
v0.1.0-rc.0 Latest Latest
Warning

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

Go to latest
Published: Mar 27, 2025 License: GPL-3.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	RootCmd = &cobra.Command{
		Use:   "db",
		Short: "Database migrations",
	}

	InitCmd = &cobra.Command{
		Use:   "init",
		Short: "Create migration tables",
		Run: func(cmd *cobra.Command, args []string) {
			driver := viper.GetString("driver")
			db := database.New(driver, "").Connect()

			migrator := migrate.NewMigrator(db, migrations.Migrations)
			err := migrator.Init(cmd.Context())
			if err != nil {
				panic(err)
			}
		},
	}

	MigrateCmd = &cobra.Command{
		Use:   "migrate",
		Short: "Migrate database",
		Run: func(cmd *cobra.Command, args []string) {
			driver := viper.GetString("driver")
			db := database.New(driver, "").Connect()

			migrator := migrate.NewMigrator(db, migrations.Migrations)
			if err := migrator.Lock(cmd.Context()); err != nil {
				panic(err)
			}
			defer migrator.Unlock(cmd.Context())

			group, err := migrator.Migrate(cmd.Context())
			if err != nil {
				panic(err)
			}
			if group.IsZero() {
				fmt.Printf("there are no new migrations to run (database is up to date)\n")
			}
			fmt.Printf("migrated to %s\n", group)
		},
	}

	UnlockCmd = &cobra.Command{
		Use: "unlock",
		Run: func(cmd *cobra.Command, args []string) {
			driver := viper.GetString("driver")
			db := database.New(driver, "").Connect()

			migrator := migrate.NewMigrator(db, migrations.Migrations)
			err := migrator.Unlock(cmd.Context())
			if err != nil {
				panic(err)
			}
		},
	}

	LockCmd = &cobra.Command{
		Use: "lock",
		Run: func(cmd *cobra.Command, args []string) {
			driver := viper.GetString("driver")
			db := database.New(driver, "").Connect()

			migrator := migrate.NewMigrator(db, migrations.Migrations)
			err := migrator.Lock(cmd.Context())
			if err != nil {
				panic(err)
			}
		},
	}

	CreateMigrationCmd = &cobra.Command{
		Use:   "create",
		Short: "Create database migration",
		Run: func(cmd *cobra.Command, args []string) {
			driver := viper.GetString("driver")
			db := database.New(driver, "").Connect()

			migrator := migrate.NewMigrator(db, migrations.Migrations)

			name := strings.Join(args, "_")
			mf, err := migrator.CreateGoMigration(cmd.Context(), name)
			if err != nil {
				panic(err)
			}
			fmt.Printf("created migration %s (%s)\n", mf.Name, mf.Path)
		},
	}
)

Functions

func AutoMigrate

func AutoMigrate(ctx context.Context, db *bun.DB)

Types

This section is empty.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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