e3bb8b19dd
Also improves migrations and updates the db schema docs. Signed-off-by: Michael Mayer <michael@photoprism.app>
57 lines
1 KiB
Go
57 lines
1 KiB
Go
package entity
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/photoprism/photoprism/internal/migrate"
|
|
|
|
"github.com/jinzhu/gorm"
|
|
)
|
|
|
|
func TestMySQL8(t *testing.T) {
|
|
dbDsn := os.Getenv("PHOTOPRISM_TEST_DSN_MYSQL8")
|
|
|
|
if dbDsn == "" {
|
|
t.Skip("skipping MySQL 8 test: PHOTOPRISM_TEST_DSN_MYSQL8 is not set")
|
|
}
|
|
|
|
dbDriver := MySQL
|
|
db, err := gorm.Open(dbDriver, dbDsn)
|
|
|
|
if err != nil || db == nil {
|
|
for i := 1; i <= 5; i++ {
|
|
db, err = gorm.Open(dbDriver, dbDsn)
|
|
|
|
if db != nil && err == nil {
|
|
break
|
|
}
|
|
|
|
time.Sleep(5 * time.Second)
|
|
}
|
|
|
|
if err != nil || db == nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
defer db.Close()
|
|
|
|
db.LogMode(false)
|
|
|
|
DeprecatedTables.Drop(db)
|
|
Entities.Drop(db)
|
|
|
|
// First migration.
|
|
Entities.Migrate(db, migrate.Opt(false, nil))
|
|
Entities.WaitForMigration(db)
|
|
|
|
// Second migration.
|
|
Entities.Migrate(db, migrate.Opt(false, nil))
|
|
Entities.WaitForMigration(db)
|
|
|
|
// Third migration with force flag.
|
|
Entities.Migrate(db, migrate.Opt(false, []string{"20211121-094727"}))
|
|
Entities.WaitForMigration(db)
|
|
}
|