IgnisDa / ryot

Roll your own tracker!
https://ryot.io
GNU General Public License v3.0
1.94k stars 52 forks source link

v3.5.4 to v4.0.0 Application Error #1014

Closed zero-thermo closed 1 month ago

zero-thermo commented 1 month ago

Hello. I have been slowly upgrading from Ryot v1 following the migration guide, and have been successful up to v3.5.4. However, when trying to upgrade to v4.x, I get an "Application Error" in the WebUI.

Logs for ryot ``` INFO Set uid to user 1001 succeeded INFO supervisord started with pid 1 INFO spawned: 'backend' with pid 8 INFO spawned: 'frontend' with pid 9 INFO spawned: 'reverse-proxy' with pid 10 INFO success: backend entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) INFO success: frontend entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) INFO success: reverse-proxy entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) WARN exited: backend (exit status 1; not expected) INFO spawned: 'backend' with pid 57 WARN exited: backend (exit status 1; not expected) INFO spawned: 'backend' with pid 64 INFO success: backend entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) WARN exited: backend (exit status 1; not expected) INFO spawned: 'backend' with pid 71 INFO success: backend entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) WARN exited: backend (exit status 1; not expected) INFO spawned: 'backend' with pid 78 WARN exited: backend (exit status 1; not expected) INFO spawned: 'backend' with pid 85 INFO success: backend entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) WARN exited: backend (exit status 1; not expected) INFO spawned: 'backend' with pid 92 WARN exited: backend (exit status 1; not expected) INFO spawned: 'backend' with pid 99 WARN exited: backend (exit status 1; not expected) INFO spawned: 'backend' with pid 106 INFO success: backend entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) WARN exited: backend (exit status 1; not expected) INFO spawned: 'backend' with pid 113 WARN exited: backend (exit status 1; not expected) INFO spawned: 'backend' with pid 120 WARN exited: backend (exit status 1; not expected) INFO spawned: 'backend' with pid 127 WARN exited: backend (exit status 1; not expected) INFO spawned: 'backend' with pid 134 INFO success: backend entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) WARN exited: backend (exit status 1; not expected) INFO spawned: 'backend' with pid 141 WARN exited: backend (exit status 1; not expected) INFO spawned: 'backend' with pid 148 WARN exited: backend (exit status 1; not expected) INFO spawned: 'backend' with pid 155 WARN exited: backend (exit status 1; not expected) INFO spawned: 'backend' with pid 162 WARN exited: backend (exit status 1; not expected) INFO gave up: backend entered FATAL state, too many start retries too quickly ```
Logs for the ryot Postgres container ``` PostgreSQL Database directory appears to contain a database; Skipping initialization [1] LOG: starting PostgreSQL 15.8 on x86_64-pc-linux-musl, compiled by gcc (Alpine 13.2.1_git20240309) 13.2.1 20240309, 64-bit [1] LOG: listening on IPv4 address "0.0.0.0", port 5432 [1] LOG: listening on IPv6 address "::", port 5432 [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432" [30] LOG: database system was shut down at 2024-09-07 20:19:40 UTC [1] LOG: database system is ready to accept connections [35] ERROR: relation "metadata_to_metadata" already exists [35] STATEMENT: CREATE TABLE "metadata_to_metadata" ( "id" serial NOT NULL PRIMARY KEY, "from_metadata_id" integer NOT NULL, "relation" varchar(2) NOT NULL, "to_metadata_id" integer NOT NULL, FOREIGN KEY ("from_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY ("to_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE ) ERROR: relation "metadata_to_metadata" already exists UTC [40] STATEMENT: CREATE TABLE "metadata_to_metadata" ( "id" serial NOT NULL PRIMARY KEY, "from_metadata_id" integer NOT NULL, "relation" varchar(2) NOT NULL, "to_metadata_id" integer NOT NULL, FOREIGN KEY ("from_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY ("to_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE ) UTC [44] ERROR: relation "metadata_to_metadata" already exists UTC [44] STATEMENT: CREATE TABLE "metadata_to_metadata" ( "id" serial NOT NULL PRIMARY KEY, "from_metadata_id" integer NOT NULL, "relation" varchar(2) NOT NULL, "to_metadata_id" integer NOT NULL, FOREIGN KEY ("from_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY ("to_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE ) UTC [50] ERROR: relation "metadata_to_metadata" already exists [50] STATEMENT: CREATE TABLE "metadata_to_metadata" ( "id" serial NOT NULL PRIMARY KEY, "from_metadata_id" integer NOT NULL, "relation" varchar(2) NOT NULL, "to_metadata_id" integer NOT NULL, FOREIGN KEY ("from_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY ("to_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE ) [55] ERROR: relation "metadata_to_metadata" already exists [55] STATEMENT: CREATE TABLE "metadata_to_metadata" ( "id" serial NOT NULL PRIMARY KEY, "from_metadata_id" integer NOT NULL, "relation" varchar(2) NOT NULL, "to_metadata_id" integer NOT NULL, FOREIGN KEY ("from_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY ("to_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE ) [60] ERROR: relation "metadata_to_metadata" already exists [60] STATEMENT: CREATE TABLE "metadata_to_metadata" ( "id" serial NOT NULL PRIMARY KEY, "from_metadata_id" integer NOT NULL, "relation" varchar(2) NOT NULL, "to_metadata_id" integer NOT NULL, FOREIGN KEY ("from_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY ("to_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE ) UTC [60] LOG: could not send data to client: Broken pipe UTC [60] FATAL: connection to client lost UTC [64] ERROR: relation "metadata_to_metadata" already exists UTC [64] STATEMENT: CREATE TABLE "metadata_to_metadata" ( "id" serial NOT NULL PRIMARY KEY, "from_metadata_id" integer NOT NULL, "relation" varchar(2) NOT NULL, "to_metadata_id" integer NOT NULL, FOREIGN KEY ("from_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY ("to_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE ) [64] LOG: could not send data to client: Broken pipe [64] FATAL: connection to client lost [69] ERROR: relation "metadata_to_metadata" already exists 09/07/2024 1:19:56 PM 2024-09-07 20:19:56.310 UTC [69] STATEMENT: CREATE TABLE "metadata_to_metadata" ( "id" serial NOT NULL PRIMARY KEY, "from_metadata_id" integer NOT NULL, "relation" varchar(2) NOT NULL, "to_metadata_id" integer NOT NULL, FOREIGN KEY ("from_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY ("to_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE ) UTC [74] ERROR: relation "metadata_to_metadata" already exists [74] STATEMENT: CREATE TABLE "metadata_to_metadata" ( "id" serial NOT NULL PRIMARY KEY, "from_metadata_id" integer NOT NULL, "relation" varchar(2) NOT NULL, "to_metadata_id" integer NOT NULL, FOREIGN KEY ("from_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY ("to_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE ) [80] ERROR: relation "metadata_to_metadata" already exists [80] STATEMENT: CREATE TABLE "metadata_to_metadata" ( "id" serial NOT NULL PRIMARY KEY, "from_metadata_id" integer NOT NULL, "relation" varchar(2) NOT NULL, "to_metadata_id" integer NOT NULL, FOREIGN KEY ("from_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY ("to_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE ) [85] ERROR: relation "metadata_to_metadata" already exists [85] STATEMENT: CREATE TABLE "metadata_to_metadata" ( "id" serial NOT NULL PRIMARY KEY, "from_metadata_id" integer NOT NULL, "relation" varchar(2) NOT NULL, "to_metadata_id" integer NOT NULL, FOREIGN KEY ("from_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY ("to_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE ) [85] LOG: could not send data to client: Connection reset by peer [85] FATAL: connection to client lost [90] ERROR: relation "metadata_to_metadata" already exists [90] STATEMENT: CREATE TABLE "metadata_to_metadata" ( "id" serial NOT NULL PRIMARY KEY, "from_metadata_id" integer NOT NULL, "relation" varchar(2) NOT NULL, "to_metadata_id" integer NOT NULL, FOREIGN KEY ("from_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY ("to_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE ) [90] LOG: could not send data to client: Broken pipe [90] FATAL: connection to client lost [95] ERROR: relation "metadata_to_metadata" already exists [95] STATEMENT: CREATE TABLE "metadata_to_metadata" ( "id" serial NOT NULL PRIMARY KEY, "from_metadata_id" integer NOT NULL, "relation" varchar(2) NOT NULL, "to_metadata_id" integer NOT NULL, FOREIGN KEY ("from_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY ("to_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE ) [100] ERROR: relation "metadata_to_metadata" already exists [100] STATEMENT: CREATE TABLE "metadata_to_metadata" ( "id" serial NOT NULL PRIMARY KEY, "from_metadata_id" integer NOT NULL, "relation" varchar(2) NOT NULL, "to_metadata_id" integer NOT NULL, FOREIGN KEY ("from_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY ("to_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE ) [100] LOG: could not receive data from client: Connection reset by peer [104] ERROR: relation "metadata_to_metadata" already exists [104] STATEMENT: CREATE TABLE "metadata_to_metadata" ( "id" serial NOT NULL PRIMARY KEY, "from_metadata_id" integer NOT NULL, "relation" varchar(2) NOT NULL, "to_metadata_id" integer NOT NULL, FOREIGN KEY ("from_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY ("to_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE ) [110] ERROR: relation "metadata_to_metadata" already exists [110] STATEMENT: CREATE TABLE "metadata_to_metadata" ( "id" serial NOT NULL PRIMARY KEY, "from_metadata_id" integer NOT NULL, "relation" varchar(2) NOT NULL, "to_metadata_id" integer NOT NULL, FOREIGN KEY ("from_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY ("to_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE ) [115] ERROR: relation "metadata_to_metadata" already exists [115] STATEMENT: CREATE TABLE "metadata_to_metadata" ( "id" serial NOT NULL PRIMARY KEY, "from_metadata_id" integer NOT NULL, "relation" varchar(2) NOT NULL, "to_metadata_id" integer NOT NULL, FOREIGN KEY ("from_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY ("to_metadata_id") REFERENCES "metadata" ("id") ON DELETE CASCADE ON UPDATE CASCADE ) ```
ryot docker-compose ``` version: '3.3' services: postgres: image: postgres:15-alpine container_name: ryot_postgres restart: unless-stopped volumes: - postgres_storage:/var/lib/postgresql/data environment: POSTGRES_PASSWORD: secret POSTGRES_USER: secret POSTGRES_DB: secret ryot: image: 'ghcr.io/ignisda/ryot:v4.0.0' container_name: ryot restart: unless-stopped ports: - '8004:8000' environment: - WEB_INSECURE_COOKIE=true # only required if not running HTTPs - DATABASE_URL=postgres://postgres:postgres@postgres:5432/postgres?sslmode=disable - VIDEO_GAMES_TWITCH_CLIENT_ID=secret - VIDEO_GAMES_TWITCH_CLIENT_SECRET=secret #- video_games.twitch.access_token_url= #- video_games.igdb.url= #- video_games.igdb.image_url= #- video_games.igdb.image_size= volumes: - './data:/data' depends_on: - postgres volumes: postgres_storage: ```
zero-thermo commented 1 month ago

Made some progress by rolling back to an earlier version, wiping + restoring the DB, and upgrading to v4.0.0 again. This time, the ryot and ryot Postgres logs are clean.

When upgrading to v4.4.3 to prepare for v5 migration, both logs initially look clean. However, once I log in, I again see "Application Error" with the following logs:

Logs for ryot ``` [frontend] ClientError: Query Error: error returned from database: column user_to_entity.media_reason does not exist: {"response":{"data":null,"errors":[{"message":"Query Error: error returned from database: column user_to_entity.media_reason does not exist","locations":[{"line":2,"column":3}],"path":["userUpcomingCalendarEvents"]}],"status":200,"headers":{}},"request":{"query":"query UserUpcomingCalendarEvents($input: UserUpcomingCalendarEventInput!) {\n userUpcomingCalendarEvents(input: $input) {\n ...CalendarEventPart\n }\n}\n\nfragment SeenShowExtraInformationPart on SeenShowExtraInformation {\n episode\n season\n}\n\nfragment SeenPodcastExtraInformationPart on SeenPodcastExtraInformation {\n episode\n}\n\nfragment CalendarEventPart on GraphqlCalendarEvent {\n calendarEventId\n metadataId\n metadataTitle\n metadataLot\n metadataImage\n date\n showExtraInformation {\n ...SeenShowExtraInformationPart\n }\n podcastExtraInformation {\n ...SeenPodcastExtraInformationPart\n }\n}","variables":{"input":{"nextMedia":8}}}} [frontend] at makeRequest (file:///home/ryot/node_modules/graphql-request/src/index.ts:426:11) [frontend] at processTicksAndRejections (node:internal/process/task_queues:95:5) [frontend] at loader$5 (file:///home/ryot/build/server/index.js?t=1713482932000:12376:42) [frontend] at Object.callRouteLoaderRR (/home/ryot/node_modules/@remix-run/server-runtime/dist/data.js:52:16) [frontend] at callLoaderOrAction (/home/ryot/node_modules/@remix-run/router/router.ts:4043:16) [frontend] at async Promise.all (index 0) [frontend] at loadRouteData (/home/ryot/node_modules/@remix-run/router/router.ts:3320:19) [frontend] at queryImpl (/home/ryot/node_modules/@remix-run/router/router.ts:3101:20) [frontend] at Object.queryRoute (/home/ryot/node_modules/@remix-run/router/router.ts:3041:18) [frontend] at handleDataRequestRR (/home/ryot/node_modules/@remix-run/server-runtime/dist/server.js:122:20) { [frontend] response: { [frontend] data: null, [frontend] errors: [ [Object] ], [frontend] status: 200, [frontend] headers: Headers { [Symbol(map)]: [Object: null prototype] } [frontend] }, [frontend] request: { [frontend] query: 'query UserUpcomingCalendarEvents($input: UserUpcomingCalendarEventInput!) {\n' + [frontend] ' userUpcomingCalendarEvents(input: $input) {\n' + [frontend] ' ...CalendarEventPart\n' + [frontend] ' }\n' + [frontend] '}\n' + [frontend] '\n' + [frontend] 'fragment SeenShowExtraInformationPart on SeenShowExtraInformation {\n' + [frontend] ' episode\n' + [frontend] ' season\n' + [frontend] '}\n' + [frontend] '\n' + [frontend] 'fragment SeenPodcastExtraInformationPart on SeenPodcastExtraInformation {\n' + [frontend] ' episode\n' + [frontend] '}\n' + [frontend] '\n' + [frontend] 'fragment CalendarEventPart on GraphqlCalendarEvent {\n' + [frontend] ' calendarEventId\n' + [frontend] ' metadataId\n' + [frontend] ' metadataTitle\n' + [frontend] ' metadataLot\n' + [frontend] ' metadataImage\n' + [frontend] ' date\n' + [frontend] ' showExtraInformation {\n' + [frontend] ' ...SeenShowExtraInformationPart\n' + [frontend] ' }\n' + [frontend] ' podcastExtraInformation {\n' + [frontend] ' ...SeenPodcastExtraInformationPart\n' + [frontend] ' }\n' + [frontend] '}', [frontend] variables: { input: [Object] } [frontend] } [frontend] } [frontend] GET /?_data=routes%2F_dashboard._index 500 - - 205.593 ms [frontend] GET / 302 - - 11.987 ms [frontend] GET /auth/login?redirectTo=%2F 200 - - 43.540 ms [frontend] POST /auth/login?redirectTo=%2F&_data=routes%2Fauth.login 204 - - 78.156 ms [frontend] GET /?_data=root 200 - - 2.985 ms [frontend] GET /?_data=routes%2F_dashboard 200 - - 32.690 ms [frontend] ClientError: Query Error: error returned from database: column user_to_entity.media_reason does not exist: {"response":{"data":null,"errors":[{"message":"Query Error: error returned from database: column user_to_entity.media_reason does not exist","locations":[{"line":2,"column":3}],"path":["userUpcomingCalendarEvents"]}],"status":200,"headers":{}},"request":{"query":"query UserUpcomingCalendarEvents($input: UserUpcomingCalendarEventInput!) {\n userUpcomingCalendarEvents(input: $input) {\n ...CalendarEventPart\n }\n}\n\nfragment SeenShowExtraInformationPart on SeenShowExtraInformation {\n episode\n season\n}\n\nfragment SeenPodcastExtraInformationPart on SeenPodcastExtraInformation {\n episode\n}\n\nfragment CalendarEventPart on GraphqlCalendarEvent {\n calendarEventId\n metadataId\n metadataTitle\n metadataLot\n metadataImage\n date\n showExtraInformation {\n ...SeenShowExtraInformationPart\n }\n podcastExtraInformation {\n ...SeenPodcastExtraInformationPart\n }\n}","variables":{"input":{"nextMedia":8}}}} [frontend] at makeRequest (file:///home/ryot/node_modules/graphql-request/src/index.ts:426:11) [frontend] at processTicksAndRejections (node:internal/process/task_queues:95:5) [frontend] at loader$5 (file:///home/ryot/build/server/index.js?t=1713482932000:12376:42) [frontend] at Object.callRouteLoaderRR (/home/ryot/node_modules/@remix-run/server-runtime/dist/data.js:52:16) [frontend] at callLoaderOrAction (/home/ryot/node_modules/@remix-run/router/router.ts:4043:16) [frontend] at async Promise.all (index 0) [frontend] at loadRouteData (/home/ryot/node_modules/@remix-run/router/router.ts:3320:19) [frontend] at queryImpl (/home/ryot/node_modules/@remix-run/router/router.ts:3101:20) [frontend] at Object.queryRoute (/home/ryot/node_modules/@remix-run/router/router.ts:3041:18) [frontend] at handleDataRequestRR (/home/ryot/node_modules/@remix-run/server-runtime/dist/server.js:122:20) { [frontend] response: { [frontend] data: null, [frontend] errors: [ [Object] ], [frontend] status: 200, [frontend] headers: Headers { [Symbol(map)]: [Object: null prototype] } [frontend] }, [frontend] request: { [frontend] query: 'query UserUpcomingCalendarEvents($input: UserUpcomingCalendarEventInput!) {\n' + [frontend] ' userUpcomingCalendarEvents(input: $input) {\n' + [frontend] ' ...CalendarEventPart\n' + [frontend] ' }\n' + [frontend] '}\n' + [frontend] '\n' + [frontend] 'fragment SeenShowExtraInformationPart on SeenShowExtraInformation {\n' + [frontend] ' episode\n' + [frontend] ' season\n' + [frontend] '}\n' + [frontend] '\n' + [frontend] 'fragment SeenPodcastExtraInformationPart on SeenPodcastExtraInformation {\n' + [frontend] ' episode\n' + [frontend] '}\n' + [frontend] '\n' + [frontend] 'fragment CalendarEventPart on GraphqlCalendarEvent {\n' + [frontend] ' calendarEventId\n' + [frontend] ' metadataId\n' + [frontend] ' metadataTitle\n' + [frontend] ' metadataLot\n' + [frontend] ' metadataImage\n' + [frontend] ' date\n' + [frontend] ' showExtraInformation {\n' + [frontend] ' ...SeenShowExtraInformationPart\n' + [frontend] ' }\n' + [frontend] ' podcastExtraInformation {\n' + [frontend] ' ...SeenPodcastExtraInformationPart\n' + [frontend] ' }\n' + [frontend] '}', [frontend] variables: { input: [Object] } [frontend] } [frontend] } [frontend] GET /?_data=routes%2F_dashboard._index 500 - - 82.019 ms ```
Logs for ryot Postgres ``` [35] ERROR: column user_to_entity.media_reason does not exist at character 591 [35] STATEMENT: SELECT "calendar_event"."id", "calendar_event"."date", "calendar_event"."metadata_id", "calendar_event"."metadata_show_extra_information", "calendar_event"."metadata_podcast_extra_information", "metadata"."lot" AS "m_lot", "metadata"."title" AS "m_title", "metadata"."images" AS "m_images", "metadata"."show_specifics" AS "m_show_specifics", "metadata"."podcast_specifics" AS "m_podcast_specifics" FROM "calendar_event" JOIN "metadata" ON "calendar_event"."metadata_id" = "metadata"."id" JOIN "user_to_entity" ON "user_to_entity"."metadata_id" = "calendar_event"."metadata_id" AND $1 = ANY("user_to_entity"."media_reason") WHERE "user_to_entity"."user_id" = $2 AND "calendar_event"."date" >= $3 ORDER BY "calendar_event"."date" ASC LIMIT $4 [35] ERROR: column user_to_entity.media_reason does not exist at character 591 [35] STATEMENT: SELECT "calendar_event"."id", "calendar_event"."date", "calendar_event"."metadata_id", "calendar_event"."metadata_show_extra_information", "calendar_event"."metadata_podcast_extra_information", "metadata"."lot" AS "m_lot", "metadata"."title" AS "m_title", "metadata"."images" AS "m_images", "metadata"."show_specifics" AS "m_show_specifics", "metadata"."podcast_specifics" AS "m_podcast_specifics" FROM "calendar_event" JOIN "metadata" ON "calendar_event"."metadata_id" = "metadata"."id" JOIN "user_to_entity" ON "user_to_entity"."metadata_id" = "calendar_event"."metadata_id" AND $1 = ANY("user_to_entity"."media_reason") WHERE "user_to_entity"."user_id" = $2 AND "calendar_event"."date" >= $3 ORDER BY "calendar_event"."date" ASC LIMIT $4 [26] LOG: checkpoint starting: time ```

What am I doing wrong and what's the right way to migrate to v5?

IgnisDa commented 1 month ago

I am sorry, but I am not willing to solve this issue. Please be a bit more diligent in keeping software up to date.

My recommendation: run a version that works and export your data and then import it back to a fresh ryot instance running the latest version.