From 2c5970d77c94139e92fee1cb07de9197ce26ad25 Mon Sep 17 00:00:00 2001 From: sentriz Date: Thu, 20 Feb 2020 00:04:51 +0000 Subject: [PATCH] update migration order --- db/db.go | 2 +- db/migrations.go | 65 +++++++++++++++++--------------- server/ctrlsubsonic/testdata/db | Bin 122880 -> 122880 bytes 3 files changed, 35 insertions(+), 32 deletions(-) diff --git a/db/db.go b/db/db.go index b492df3..14b6769 100644 --- a/db/db.go +++ b/db/db.go @@ -37,8 +37,8 @@ func New(path string) (*DB, error) { db.DB().SetMaxOpenConns(dbMaxOpenConns) db.Exec("PRAGMA journal_mode=WAL;") migr := gormigrate.New(db, gormigrate.DefaultOptions, []*gormigrate.Migration{ - &migrationCreateInitUser, &migrationInitSchema, + &migrationCreateInitUser, &migrationMergePlaylist, }) if err = migr.Migrate(); err != nil { diff --git a/db/migrations.go b/db/migrations.go index 7d477bd..47b1311 100644 --- a/db/migrations.go +++ b/db/migrations.go @@ -6,29 +6,7 @@ import ( "gopkg.in/gormigrate.v1" ) -var migrationCreateInitUser = gormigrate.Migration{ - ID: "202002192019", - Migrate: func(tx *gorm.DB) error { - const ( - initUsername = "admin" - initPassword = "admin" - ) - err := tx. - Where("name = ?", initUsername). - First(&User{}). - Error - if gorm.IsRecordNotFoundError(err) { - tx.Create(&User{ - Name: initUsername, - Password: initPassword, - IsAdmin: true, - }) - return nil - } - return err - }, -} - +// not really a migration var migrationInitSchema = gormigrate.Migration{ ID: "202002192100", Migrate: func(tx *gorm.DB) error { @@ -46,19 +24,44 @@ var migrationInitSchema = gormigrate.Migration{ }, } +// not really a migration +var migrationCreateInitUser = gormigrate.Migration{ + ID: "202002192019", + Migrate: func(tx *gorm.DB) error { + const ( + initUsername = "admin" + initPassword = "admin" + ) + err := tx. + Where("name = ?", initUsername). + First(&User{}). + Error + if !gorm.IsRecordNotFoundError(err) { + return nil + } + return tx.Create(&User{ + Name: initUsername, + Password: initPassword, + IsAdmin: true, + }). + Error + }, +} + var migrationMergePlaylist = gormigrate.Migration{ ID: "202002192222", Migrate: func(tx *gorm.DB) error { + if !tx.HasTable("playlist_items") { + return nil + } return tx.Exec(` UPDATE playlists - SET items = ( - SELECT group_concat(track_id) FROM ( - SELECT track_id - FROM playlist_items - WHERE playlist_items.playlist_id=playlists.id - ORDER BY created_at - ) - ); + SET items = ( SELECT group_concat(track_id) FROM ( + SELECT track_id + FROM playlist_items + WHERE playlist_items.playlist_id=playlists.id + ORDER BY created_at + ) ); DROP TABLE playlist_items;`, ). Error diff --git a/server/ctrlsubsonic/testdata/db b/server/ctrlsubsonic/testdata/db index 871b1839f4ca22eb51496172a5ef8055eb32a80b..c4d26aa1063b3871429c7eb13fb40ec2a64acf55 100644 GIT binary patch delta 22 ecmZoTz}|3xeS$P&@kAMC#^T0=tqF_^?gIc`gb0WL delta 22 ecmZoTz}|3xeS$P&;Y1l{#=^#gtqF_^?gIc`S_p&y