diff --git a/store/db/mysql/migrator.go b/store/db/mysql/migrator.go index f947ea98..6b5c049b 100644 --- a/store/db/mysql/migrator.go +++ b/store/db/mysql/migrator.go @@ -30,6 +30,31 @@ func (d *DB) Migrate(ctx context.Context) error { } func (d *DB) nonProdMigrate(ctx context.Context) error { + rows, err := d.db.QueryContext(ctx, "SHOW TABLES") + if err != nil { + return errors.Errorf("failed to query database tables: %s", err) + } + if rows.Err() != nil { + return errors.Errorf("failed to query database tables: %s", err) + } + defer rows.Close() + + var tables []string + for rows.Next() { + var table string + err := rows.Scan(&table) + if err != nil { + return errors.Errorf("failed to scan table name: %s", err) + } + tables = append(tables, table) + } + + if len(tables) != 0 { + return nil + } + + println("no tables in the database. start migration") + buf, err := migrationFS.ReadFile("migration/dev/" + latestSchemaFileName) if err != nil { return errors.Errorf("failed to read latest schema file: %s", err)