update migration order
This commit is contained in:
2
db/db.go
2
db/db.go
@@ -37,8 +37,8 @@ func New(path string) (*DB, error) {
|
|||||||
db.DB().SetMaxOpenConns(dbMaxOpenConns)
|
db.DB().SetMaxOpenConns(dbMaxOpenConns)
|
||||||
db.Exec("PRAGMA journal_mode=WAL;")
|
db.Exec("PRAGMA journal_mode=WAL;")
|
||||||
migr := gormigrate.New(db, gormigrate.DefaultOptions, []*gormigrate.Migration{
|
migr := gormigrate.New(db, gormigrate.DefaultOptions, []*gormigrate.Migration{
|
||||||
&migrationCreateInitUser,
|
|
||||||
&migrationInitSchema,
|
&migrationInitSchema,
|
||||||
|
&migrationCreateInitUser,
|
||||||
&migrationMergePlaylist,
|
&migrationMergePlaylist,
|
||||||
})
|
})
|
||||||
if err = migr.Migrate(); err != nil {
|
if err = migr.Migrate(); err != nil {
|
||||||
|
|||||||
@@ -6,29 +6,7 @@ import (
|
|||||||
"gopkg.in/gormigrate.v1"
|
"gopkg.in/gormigrate.v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
var migrationCreateInitUser = gormigrate.Migration{
|
// not really a 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
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
var migrationInitSchema = gormigrate.Migration{
|
var migrationInitSchema = gormigrate.Migration{
|
||||||
ID: "202002192100",
|
ID: "202002192100",
|
||||||
Migrate: func(tx *gorm.DB) error {
|
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{
|
var migrationMergePlaylist = gormigrate.Migration{
|
||||||
ID: "202002192222",
|
ID: "202002192222",
|
||||||
Migrate: func(tx *gorm.DB) error {
|
Migrate: func(tx *gorm.DB) error {
|
||||||
|
if !tx.HasTable("playlist_items") {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
return tx.Exec(`
|
return tx.Exec(`
|
||||||
UPDATE playlists
|
UPDATE playlists
|
||||||
SET items = (
|
SET items = ( SELECT group_concat(track_id) FROM (
|
||||||
SELECT group_concat(track_id) FROM (
|
|
||||||
SELECT track_id
|
SELECT track_id
|
||||||
FROM playlist_items
|
FROM playlist_items
|
||||||
WHERE playlist_items.playlist_id=playlists.id
|
WHERE playlist_items.playlist_id=playlists.id
|
||||||
ORDER BY created_at
|
ORDER BY created_at
|
||||||
)
|
) );
|
||||||
);
|
|
||||||
DROP TABLE playlist_items;`,
|
DROP TABLE playlist_items;`,
|
||||||
).
|
).
|
||||||
Error
|
Error
|
||||||
|
|||||||
BIN
server/ctrlsubsonic/testdata/db
vendored
BIN
server/ctrlsubsonic/testdata/db
vendored
Binary file not shown.
Reference in New Issue
Block a user