aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/initializers
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2020-11-10 16:29:35 +0100
committerChocobozzz <me@florianbigard.com>2020-11-10 16:29:35 +0100
commit2af337c83905c420b2d9022ee6fd3d6ef5fd1e42 (patch)
treefa6293371d4b607e00545a552ccd8bfab465926a /server/initializers
parentb9cf3fb6381f71c976fbe515f728082d90a9c437 (diff)
downloadPeerTube-2af337c83905c420b2d9022ee6fd3d6ef5fd1e42.tar.gz
PeerTube-2af337c83905c420b2d9022ee6fd3d6ef5fd1e42.tar.zst
PeerTube-2af337c83905c420b2d9022ee6fd3d6ef5fd1e42.zip
Cleanup follows of orphean actors
Diffstat (limited to 'server/initializers')
-rw-r--r--server/initializers/constants.ts2
-rw-r--r--server/initializers/migrations/0550-actor-follow-cleanup.ts27
2 files changed, 28 insertions, 1 deletions
diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts
index 0bb251043..6ab4d957a 100644
--- a/server/initializers/constants.ts
+++ b/server/initializers/constants.ts
@@ -23,7 +23,7 @@ import { CONFIG, registerConfigChangedHandler } from './config'
23 23
24// --------------------------------------------------------------------------- 24// ---------------------------------------------------------------------------
25 25
26const LAST_MIGRATION_VERSION = 545 26const LAST_MIGRATION_VERSION = 550
27 27
28// --------------------------------------------------------------------------- 28// ---------------------------------------------------------------------------
29 29
diff --git a/server/initializers/migrations/0550-actor-follow-cleanup.ts b/server/initializers/migrations/0550-actor-follow-cleanup.ts
new file mode 100644
index 000000000..8ba6feec2
--- /dev/null
+++ b/server/initializers/migrations/0550-actor-follow-cleanup.ts
@@ -0,0 +1,27 @@
1import * as Sequelize from 'sequelize'
2
3async function up (utils: {
4 transaction: Sequelize.Transaction
5 queryInterface: Sequelize.QueryInterface
6 sequelize: Sequelize.Sequelize
7}): Promise<void> {
8 const query = `
9 WITH t AS (
10 SELECT actor.id FROM actor
11 LEFT JOIN "videoChannel" ON "videoChannel"."actorId" = actor.id
12 LEFT JOIN account ON account."actorId" = "actor"."id"
13 WHERE "videoChannel".id IS NULL and "account".id IS NULL
14 ) DELETE FROM "actorFollow" WHERE "actorId" IN (SELECT t.id FROM t) OR "targetActorId" in (SELECT t.id FROM t)
15 `
16
17 await utils.sequelize.query(query)
18}
19
20function down (options) {
21 throw new Error('Not implemented.')
22}
23
24export {
25 up,
26 down
27}