Started adding extra commands for rollback and list
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
parent
d79a7e7153
commit
32e2e81741
|
@ -22,6 +22,9 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
migrateCmd.AddCommand(migrateListCmd)
|
||||||
|
migrationRollbackCmd.Flags().StringVarP(&rollbackUntilFlag, "name", "n", "", "The id of the migration you want to roll back until.")
|
||||||
|
migrateCmd.AddCommand(migrationRollbackCmd)
|
||||||
rootCmd.AddCommand(migrateCmd)
|
rootCmd.AddCommand(migrateCmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,3 +38,21 @@ var migrateCmd = &cobra.Command{
|
||||||
migration.Migrate(nil)
|
migration.Migrate(nil)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var migrateListCmd = &cobra.Command{
|
||||||
|
Use: "list",
|
||||||
|
Short: "Show a list with all database migrations.",
|
||||||
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
|
migration.ListMigrations()
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
var rollbackUntilFlag string
|
||||||
|
|
||||||
|
var migrationRollbackCmd = &cobra.Command{
|
||||||
|
Use: "rollback",
|
||||||
|
Short: "Roll migrations back until a certain point.",
|
||||||
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
|
migration.Rollback(rollbackUntilFlag)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
|
@ -30,14 +30,15 @@ import (
|
||||||
|
|
||||||
var migrations []*xormigrate.Migration
|
var migrations []*xormigrate.Migration
|
||||||
|
|
||||||
func Migrate(x *xorm.Engine) {
|
// A helper function because we need a migration in various places which we can't really solve with an init() function.
|
||||||
|
func initMigration(x *xorm.Engine) *xormigrate.Xormigrate {
|
||||||
// Get our own xorm engine if we don't have one
|
// Get our own xorm engine if we don't have one
|
||||||
if x == nil {
|
if x == nil {
|
||||||
var err error
|
var err error
|
||||||
x, err = db.CreateDBEngine()
|
x, err = db.CreateDBEngine()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Log.Criticalf("Could not connect to db: %v", err.Error())
|
log.Log.Criticalf("Could not connect to db: %v", err.Error())
|
||||||
return
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,71 +51,23 @@ func Migrate(x *xorm.Engine) {
|
||||||
m := xormigrate.New(x, migrations)
|
m := xormigrate.New(x, migrations)
|
||||||
m.NewLogger(log.GetLogWriter("database"))
|
m.NewLogger(log.GetLogWriter("database"))
|
||||||
m.InitSchema(initSchema)
|
m.InitSchema(initSchema)
|
||||||
|
return m
|
||||||
|
}
|
||||||
|
|
||||||
|
func Migrate(x *xorm.Engine) {
|
||||||
|
m := initMigration(x)
|
||||||
err := m.Migrate()
|
err := m.Migrate()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Log.Fatalf("Migration failed: %v", err)
|
log.Log.Fatalf("Migration failed: %v", err)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
func ListMigrations() {
|
||||||
XORM logs from try.vikunja.io:
|
|
||||||
|
|
||||||
Table users Column email db default is 'NULL', struct default is
|
}
|
||||||
Table users Column is_active db default is NULL, struct default is
|
|
||||||
Table users Column password_reset_token db default is 'NULL', struct default is
|
func Rollback(until string) {
|
||||||
Table users Column email_confirm_token db default is 'NULL', struct default is
|
|
||||||
Table users Column created db default is NULL, struct default is
|
|
||||||
Table users Column updated db default is NULL, struct default is
|
|
||||||
Table list Column title db default is 'NULL', struct default is
|
|
||||||
Table list Column description db default is 'NULL', struct default is
|
|
||||||
Table list Column owner_id db default is NULL, struct default is
|
|
||||||
Table list Column namespace_id db default is NULL, struct default is
|
|
||||||
Table list Column created db default is NULL, struct default is
|
|
||||||
Table list Column updated db default is NULL, struct default is
|
|
||||||
Table tasks Column text db default is 'NULL', struct default is
|
|
||||||
Table tasks Column description db default is 'NULL', struct default is
|
|
||||||
Table tasks Column done db default is NULL, struct default is
|
|
||||||
Table tasks Column due_date_unix db default is NULL, struct default is
|
|
||||||
Table tasks Column reminders_unix db default is 'NULL', struct default is
|
|
||||||
Table tasks Column created_by_id db default is NULL, struct default is
|
|
||||||
Table tasks Column list_id db default is NULL, struct default is
|
|
||||||
Table tasks Column repeat_after db default is NULL, struct default is
|
|
||||||
Table tasks Column parent_task_id db default is NULL, struct default is
|
|
||||||
Table tasks Column priority db default is NULL, struct default is
|
|
||||||
Table tasks Column start_date_unix db default is NULL, struct default is
|
|
||||||
Table tasks Column end_date_unix db default is NULL, struct default is
|
|
||||||
Table tasks Column created db default is NULL, struct default is
|
|
||||||
Table tasks Column updated db default is NULL, struct default is
|
|
||||||
Table teams Column description db default is 'NULL', struct default is
|
|
||||||
Table teams Column created db default is NULL, struct default is
|
|
||||||
Table teams Column updated db default is NULL, struct default is
|
|
||||||
Table team_members Column admin db default is NULL, struct default is
|
|
||||||
Table team_members Column created db default is NULL, struct default is
|
|
||||||
Table team_list Column right db default is NULL, struct default is
|
|
||||||
Table team_list Column created db default is NULL, struct default is
|
|
||||||
Table team_list Column updated db default is NULL, struct default is
|
|
||||||
Table team_namespaces Column right db default is NULL, struct default is
|
|
||||||
Table team_namespaces Column created db default is NULL, struct default is
|
|
||||||
Table team_namespaces Column updated db default is NULL, struct default is
|
|
||||||
Table namespaces Column name db default is 'NULL', struct default is
|
|
||||||
Table namespaces Column description db default is 'NULL', struct default is
|
|
||||||
Table namespaces Column created db default is NULL, struct default is
|
|
||||||
Table namespaces Column updated db default is NULL, struct default is
|
|
||||||
Table users_list Column right db default is NULL, struct default is
|
|
||||||
Table users_list Column created db default is NULL, struct default is
|
|
||||||
Table users_list Column updated db default is NULL, struct default is
|
|
||||||
Table users_namespace Column right db default is NULL, struct default is
|
|
||||||
Table users_namespace Column created db default is NULL, struct default is
|
|
||||||
Table users_namespace Column updated db default is NULL, struct default is
|
|
||||||
Table task_assignees Column created db default is NULL, struct default is
|
|
||||||
Table labels Column description db default is 'NULL', struct default isdfdfsd
|
|
||||||
Table labels Column hex_color db default is 'NULL', struct default is
|
|
||||||
Table labels Column created db default is NULL, struct default is
|
|
||||||
Table labels Column updated db default is NULL, struct default is
|
|
||||||
Table label_task Column created db default is NULL, struct default is
|
|
||||||
|
|
||||||
Table tasks has column reminder_unix but struct has not related field
|
|
||||||
Table team_members has column updated but struct has not related field
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deletes a column from a table. All arguments are strings, to let them be standalone and not depending on any struct.
|
// Deletes a column from a table. All arguments are strings, to let them be standalone and not depending on any struct.
|
||||||
|
@ -136,6 +89,6 @@ func dropTableColum(x *xorm.Engine, tableName, col string) error {
|
||||||
|
|
||||||
func initSchema(tx *xorm.Engine) error {
|
func initSchema(tx *xorm.Engine) error {
|
||||||
return tx.Sync2(
|
return tx.Sync2(
|
||||||
models.GetTables()...,
|
models.GetTables()..., //TODO: Why does it fail here with new dbs?
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user