23 lines
703 B
JavaScript
23 lines
703 B
JavaScript
|
exports.up = async function up(knex) {
|
||
|
await knex.raw(`
|
||
|
CREATE MATERIALIZED VIEW stashes_meta AS (
|
||
|
SELECT
|
||
|
stashes.id as stash_id,
|
||
|
COUNT(DISTINCT stashes_scenes)::integer as stashed_scenes,
|
||
|
COUNT(DISTINCT stashes_movies)::integer as stashed_movies,
|
||
|
COUNT(DISTINCT stashes_actors)::integer as stashed_actors
|
||
|
FROM stashes
|
||
|
LEFT JOIN stashes_scenes ON stashes_scenes.stash_id = stashes.id
|
||
|
LEFT JOIN stashes_movies ON stashes_movies.stash_id = stashes.id
|
||
|
LEFT JOIN stashes_actors ON stashes_actors.stash_id = stashes.id
|
||
|
GROUP BY stashes.id
|
||
|
);
|
||
|
`);
|
||
|
};
|
||
|
|
||
|
exports.down = async function down(knex) {
|
||
|
await knex.raw(`
|
||
|
DROP MATERIALIZED VIEW IF EXISTS stashes_meta;
|
||
|
`);
|
||
|
};
|