mirror of
https://github.com/plankanban/planka.git
synced 2025-07-24 07:39:44 +02:00
33 lines
858 B
JavaScript
33 lines
858 B
JavaScript
|
/*!
|
||
|
* Copyright (c) 2024 PLANKA Software GmbH
|
||
|
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
|
||
|
*/
|
||
|
|
||
|
exports.up = async (knex) => {
|
||
|
await knex.schema.alterTable('card', (table) => {
|
||
|
/* Columns */
|
||
|
|
||
|
table.integer('comments_total').notNullable().defaultTo(0);
|
||
|
});
|
||
|
|
||
|
await knex.raw(`
|
||
|
UPDATE card
|
||
|
SET comments_total = comments_total_by_card_id.comments_total
|
||
|
FROM (
|
||
|
SELECT card_id, COUNT(*) as comments_total
|
||
|
FROM comment
|
||
|
GROUP BY card_id
|
||
|
) AS comments_total_by_card_id
|
||
|
WHERE card.id = comments_total_by_card_id.card_id
|
||
|
`);
|
||
|
|
||
|
return knex.schema.alterTable('card', (table) => {
|
||
|
table.integer('comments_total').notNullable().alter();
|
||
|
});
|
||
|
};
|
||
|
|
||
|
exports.down = (knex) =>
|
||
|
knex.schema.table('card', (table) => {
|
||
|
table.dropColumn('comments_total');
|
||
|
});
|