package migrationsimport ("context""database/sql""github.com/pressly/goose/v3")func init() {goose.AddMigrationContext(upAddGenreTables, downAddGenreTables)}func upAddGenreTables(_ context.Context, tx *sql.Tx) error {notice(tx, "A full rescan will be performed to import multiple genres!")_, err := tx.Exec(`create table if not exists genre(id varchar not null primary key,name varchar not null,constraint genre_name_uxunique (name));create table if not exists album_genres(album_id varchar default null not nullreferences albumon delete cascade,genre_id varchar default null not nullreferences genreon delete cascade,constraint album_genre_uxunique (album_id, genre_id));create table if not exists media_file_genres(media_file_id varchar default null not nullreferences media_fileon delete cascade,genre_id varchar default null not nullreferences genreon delete cascade,constraint media_file_genre_uxunique (media_file_id, genre_id));create table if not exists artist_genres(artist_id varchar default null not nullreferences artiston delete cascade,genre_id varchar default null not nullreferences genreon delete cascade,constraint artist_genre_uxunique (artist_id, genre_id));`)if err != nil {return err}return forceFullRescan(tx)}func downAddGenreTables(_ context.Context, tx *sql.Tx) error {return nil}