mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-06-23 15:30:34 -04:00
Creating postgres episodes triggers
This commit is contained in:
parent
dc16223e3e
commit
ac4f171a1c
@ -26,6 +26,30 @@ namespace Kyoo.Postgresql.Migrations
|
||||
migrationBuilder.Sql(@"
|
||||
CREATE TRIGGER season_slug_trigger BEFORE INSERT OR UPDATE OF season_number, show_id ON seasons
|
||||
FOR EACH ROW EXECUTE PROCEDURE season_slug_update();");
|
||||
|
||||
|
||||
// language=PostgreSQL
|
||||
migrationBuilder.Sql(@"
|
||||
CREATE FUNCTION episode_slug_update()
|
||||
RETURNS TRIGGER
|
||||
LANGUAGE PLPGSQL
|
||||
AS $$
|
||||
BEGIN
|
||||
NEW.slug := CONCAT(
|
||||
(SELECT slug FROM shows WHERE id = NEW.show_id),
|
||||
'-s',
|
||||
NEW.season_number,
|
||||
'e',
|
||||
NEW.episode_number
|
||||
);
|
||||
RETURN NEW;
|
||||
END
|
||||
$$;");
|
||||
|
||||
// language=PostgreSQL
|
||||
migrationBuilder.Sql(@"
|
||||
CREATE TRIGGER episode_slug_trigger BEFORE INSERT OR UPDATE OF episode_number, season_number, show_id ON episodes
|
||||
FOR EACH ROW EXECUTE PROCEDURE episode_slug_update();");
|
||||
|
||||
|
||||
// language=PostgreSQL
|
||||
@ -36,6 +60,7 @@ namespace Kyoo.Postgresql.Migrations
|
||||
AS $$
|
||||
BEGIN
|
||||
UPDATE seasons SET slug = CONCAT(NEW.slug, '-s', season_number) WHERE show_id = NEW.id;
|
||||
UPDATE episodes SET slug = CONCAT(NEW.slug, '-s', season_number, 'e', episode_number) WHERE show_id = NEW.id;
|
||||
RETURN NEW;
|
||||
END
|
||||
$$;");
|
||||
@ -48,14 +73,18 @@ namespace Kyoo.Postgresql.Migrations
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
// language=PostgreSQL
|
||||
migrationBuilder.Sql(@"DROP FUNCTION season_slug_update;");
|
||||
// language=PostgreSQL
|
||||
migrationBuilder.Sql("DROP TRIGGER show_slug_trigger ON shows;");
|
||||
// language=PostgreSQL
|
||||
migrationBuilder.Sql(@"DROP FUNCTION show_slug_update;");
|
||||
// language=PostgreSQL
|
||||
migrationBuilder.Sql(@"DROP TRIGGER season_slug_trigger ON seasons;");
|
||||
// language=PostgreSQL
|
||||
migrationBuilder.Sql(@"DROP FUNCTION season_slug_update;");
|
||||
// language=PostgreSQL
|
||||
migrationBuilder.Sql("DROP TRIGGER episode_slug_trigger ON episodes;");
|
||||
// language=PostgreSQL
|
||||
migrationBuilder.Sql(@"DROP FUNCTION episode_slug_update;");
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user