Update
The site is back up. I talked to my hosting provider and arranged additional local storage.
Now my concern is any data loss or corruption that could have occurred while I was issuing several conflicting server commands in quick succession (including prune-storage!). I’m poring over every file.
I’ve encountered one error already, which occurred when trying to issue the originally intended server command.
> peertube@6.1.0 create-move-video-storage-job
> node ./dist/scripts/create-move-video-storage-job.js --to-object-storage -v --all-videos
[tankie.tube:443 uploadx] 2024-06-16 06:09:55.941 debug: DiskStorage config: {
directory: '/var/www/peertube/storage/tmp/resumable-uploads',
expiration: { maxAge: undefined, rolling: true },
maxMetadataSize: '10MB',
logger: [Function: Object],
userIdentifier: [Function: userIdentifier],
filename: [Function: filename]
}
[tankie.tube:443 uploadx] 2024-06-16 06:09:55.944 debug: Registered handlers: DELETE, GET, OPTIONS, PATCH, POST, PUT
[tankie.tube:443] 2024-06-16 06:09:56.250 debug: Executed SQL request - Executing (default): SELECT 1 FROM pg_available_extensions WHERE name = 'pg_trgm' AND installed_version IS NOT NULL;
[tankie.tube:443] 2024-06-16 06:09:56.251 debug: Executed SQL request - Executing (default): SELECT 1 FROM pg_available_extensions WHERE name = 'unaccent' AND installed_version IS NOT NULL;
[tankie.tube:443] 2024-06-16 06:09:56.254 debug: Executed SQL request - Executing (default): CREATE OR REPLACE FUNCTION immutable_unaccent(text)
RETURNS text AS
$func$
SELECT public.unaccent('public.unaccent', $1::text)
$func$ LANGUAGE sql IMMUTABLE;
[tankie.tube:443] 2024-06-16 06:09:56.267 debug: Executed SQL request - Executing (default): SELECT "video".*, "Thumbnails"."id" AS "Thumbnails.id", "Thumbnails"."type" AS "Thumbnails.type", "Thumbnails"."filename" AS "Thumbnails.filename", "Thumbnails"."height" AS "Thumbnails.height", "Thumbnails"."width" AS "Thumbnails.width", "Thumbnails"."fileUrl" AS "Thumbnails.fileUrl", "Thumbnails"."onDisk" AS "Thumbnails.onDisk", "Thumbnails"."automaticallyGenerated" AS "Thumbnails.automaticallyGenerated", "Thumbnails"."videoId" AS "Thumbnails.videoId", "Thumbnails"."videoPlaylistId" AS "Thumbnails.videoPlaylistId", "Thumbnails"."createdAt" AS "Thumbnails.createdAt", "Thumbnails"."updatedAt" AS "Thumbnails.updatedAt" FROM (SELECT * FROM "video" WHERE uuid = true LIMIT 1) AS "video" LEFT OUTER JOIN "thumbnail" AS "Thumbnails" ON "video"."id" = "Thumbnails"."videoId"
Error
at Query.run (/var/www/peertube/versions/peertube-v6.1.0/node_modules/sequelize/lib/dialects/postgres/query.js:50:25)
at /var/www/peertube/versions/peertube-v6.1.0/node_modules/sequelize/lib/sequelize.js:315:28
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Promise.all (index 0)
at async VideoModelGetQueryBuilder.queryVideo (file:///var/www/peertube/versions/peertube-v6.1.0/dist/core/models/video/sql/video/video-model-get-query-builder.js:16:76)
at async run (file:///var/www/peertube/versions/peertube-v6.1.0/dist/scripts/create-move-video-storage-job.js:40:23) {
name: 'SequelizeDatabaseError',
parent: error: operator does not exist: uuid = boolean
at Parser.parseErrorMessage (/var/www/peertube/versions/peertube-v6.1.0/node_modules/pg-protocol/dist/parser.js:287:98)
at Parser.handlePacket (/var/www/peertube/versions/peertube-v6.1.0/node_modules/pg-protocol/dist/parser.js:126:29)
at Parser.parse (/var/www/peertube/versions/peertube-v6.1.0/node_modules/pg-protocol/dist/parser.js:39:38)
at Socket.<anonymous> (/var/www/peertube/versions/peertube-v6.1.0/node_modules/pg-protocol/dist/index.js:11:42)
at Socket.emit (node:events:517:28)
at addChunk (node:internal/streams/readable:368:12)
at readableAddChunk (node:internal/streams/readable:341:9)
at Readable.push (node:internal/streams/readable:278:10)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23) {
length: 200,
severity: 'ERROR',
code: '42883',
detail: undefined,
hint: 'No operator matches the given name and argument types. You might need to add explicit type casts.',
position: '665',
internalPosition: undefined,
internalQuery: undefined,
where: undefined,
schema: undefined,
table: undefined,
column: undefined,
dataType: undefined,
constraint: undefined,
file: 'parse_oper.c',
line: '647',
routine: 'op_error',
sql: 'SELECT "video".*, "Thumbnails"."id" AS "Thumbnails.id", "Thumbnails"."type" AS "Thumbnails.type", "Thumbnails"."filename" AS "Thumbnails.filename", "Thumbnails"."height" AS "Thumbnails.height", "Thumbnails"."width" AS "Thumbnails.width", "Thumbnails"."fileUrl" AS "Thumbnails.fileUrl", "Thumbnails"."onDisk" AS "Thumbnails.onDisk", "Thumbnails"."automaticallyGenerated" AS "Thumbnails.automaticallyGenerated", "Thumbnails"."videoId" AS "Thumbnails.videoId", "Thumbnails"."videoPlaylistId" AS "Thumbnails.videoPlaylistId", "Thumbnails"."createdAt" AS "Thumbnails.createdAt", "Thumbnails"."updatedAt" AS "Thumbnails.updatedAt" FROM (SELECT * FROM "video" WHERE uuid = true LIMIT 1) AS "video" LEFT OUTER JOIN "thumbnail" AS "Thumbnails" ON "video"."id" = "Thumbnails"."videoId"',
parameters: undefined
},
original: error: operator does not exist: uuid = boolean
at Parser.parseErrorMessage (/var/www/peertube/versions/peertube-v6.1.0/node_modules/pg-protocol/dist/parser.js:287:98)
at Parser.handlePacket (/var/www/peertube/versions/peertube-v6.1.0/node_modules/pg-protocol/dist/parser.js:126:29)
at Parser.parse (/var/www/peertube/versions/peertube-v6.1.0/node_modules/pg-protocol/dist/parser.js:39:38)
at Socket.<anonymous> (/var/www/peertube/versions/peertube-v6.1.0/node_modules/pg-protocol/dist/index.js:11:42)
at Socket.emit (node:events:517:28)
at addChunk (node:internal/streams/readable:368:12)
at readableAddChunk (node:internal/streams/readable:341:9)
at Readable.push (node:internal/streams/readable:278:10)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23) {
length: 200,
severity: 'ERROR',
code: '42883',
detail: undefined,
hint: 'No operator matches the given name and argument types. You might need to add explicit type casts.',
position: '665',
internalPosition: undefined,
internalQuery: undefined,
where: undefined,
schema: undefined,
table: undefined,
column: undefined,
dataType: undefined,
constraint: undefined,
file: 'parse_oper.c',
line: '647',
routine: 'op_error',
sql: 'SELECT "video".*, "Thumbnails"."id" AS "Thumbnails.id", "Thumbnails"."type" AS "Thumbnails.type", "Thumbnails"."filename" AS "Thumbnails.filename", "Thumbnails"."height" AS "Thumbnails.height", "Thumbnails"."width" AS "Thumbnails.width", "Thumbnails"."fileUrl" AS "Thumbnails.fileUrl", "Thumbnails"."onDisk" AS "Thumbnails.onDisk", "Thumbnails"."automaticallyGenerated" AS "Thumbnails.automaticallyGenerated", "Thumbnails"."videoId" AS "Thumbnails.videoId", "Thumbnails"."videoPlaylistId" AS "Thumbnails.videoPlaylistId", "Thumbnails"."createdAt" AS "Thumbnails.createdAt", "Thumbnails"."updatedAt" AS "Thumbnails.updatedAt" FROM (SELECT * FROM "video" WHERE uuid = true LIMIT 1) AS "video" LEFT OUTER JOIN "thumbnail" AS "Thumbnails" ON "video"."id" = "Thumbnails"."videoId"',
parameters: undefined
},
sql: 'SELECT "video".*, "Thumbnails"."id" AS "Thumbnails.id", "Thumbnails"."type" AS "Thumbnails.type", "Thumbnails"."filename" AS "Thumbnails.filename", "Thumbnails"."height" AS "Thumbnails.height", "Thumbnails"."width" AS "Thumbnails.width", "Thumbnails"."fileUrl" AS "Thumbnails.fileUrl", "Thumbnails"."onDisk" AS "Thumbnails.onDisk", "Thumbnails"."automaticallyGenerated" AS "Thumbnails.automaticallyGenerated", "Thumbnails"."videoId" AS "Thumbnails.videoId", "Thumbnails"."videoPlaylistId" AS "Thumbnails.videoPlaylistId", "Thumbnails"."createdAt" AS "Thumbnails.createdAt", "Thumbnails"."updatedAt" AS "Thumbnails.updatedAt" FROM (SELECT * FROM "video" WHERE uuid = true LIMIT 1) AS "video" LEFT OUTER JOIN "thumbnail" AS "Thumbnails" ON "video"."id" = "Thumbnails"."videoId"',
parameters: {}
}