core/internal/migrations/20231220052428_create_tribe...

39 lines
1.1 KiB
Go

package migrations
import (
"context"
"github.com/uptrace/bun"
)
func init() {
migrations.MustRegister(func(ctx context.Context, db *bun.DB) error {
_, err := db.ExecContext(ctx, `
create table if not exists tribe_changes
(
?ID_COL,
player_id bigint not null,
new_tribe_id bigint,
old_tribe_id bigint,
server_key varchar(100) not null
references servers,
created_at timestamp with time zone default CURRENT_TIMESTAMP not null,
foreign key (player_id, server_key) references players
);
create index if not exists tribe_changes_server_key_player_id_idx
on tribe_changes (server_key, player_id);
create index if not exists tribe_changes_server_key_new_tribe_id_idx
on tribe_changes (server_key, new_tribe_id);
create index if not exists tribe_changes_server_key_old_tribe_id_idx
on tribe_changes (server_key, old_tribe_id);
`)
return err
}, func(ctx context.Context, db *bun.DB) error {
_, err := db.ExecContext(ctx, "drop table if exists tribe_changes cascade;")
return err
})
}