107.2 noml image database query fails
Closed this issue · 15 comments
Upgrading from 106.4-noml
to latest 107.2-noml
I get this error against a DB where 106.4 was running fine and vectors is enabled.
QueryFailedError: type "vector" does not exist
at PostgresQueryRunner.query (/app/immich/server/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:219:19)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async AddFaceSearchRelation1718486162779.up (/app/immich/server/dist/migrations/1718486162779-AddFaceSearchRelation.js:12:9)
at async MigrationExecutor.executePendingMigrations (/app/immich/server/node_modules/typeorm/migration/MigrationExecutor.js:225:17)
at async DataSource.runMigrations (/app/immich/server/node_modules/typeorm/data-source/DataSource.js:265:35)
at async DatabaseRepository.runMigrations (/app/immich/server/dist/repositories/database.repository.js:169:9)
at async /app/immich/server/dist/services/database.service.js:134:17
at async /app/immich/server/dist/repositories/database.repository.js:177:23 {
query: '\n' +
' CREATE TABLE face_search (\n' +
' "faceId" uuid PRIMARY KEY REFERENCES asset_faces(id) ON DELETE CASCADE,\n' +
' embedding vector(512) NOT NULL )',
parameters: undefined,
driverError: error: type "vector" does not exist
at /app/immich/server/node_modules/pg/lib/client.js:526:17
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async PostgresQueryRunner.query (/app/immich/server/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:184:25)
at async AddFaceSearchRelation1718486162779.up (/app/immich/server/dist/migrations/1718486162779-AddFaceSearchRelation.js:12:9)
at async MigrationExecutor.executePendingMigrations (/app/immich/server/node_modules/typeorm/migration/MigrationExecutor.js:225:17)
at async DataSource.runMigrations (/app/immich/server/node_modules/typeorm/data-source/DataSource.js:265:35)
at async DatabaseRepository.runMigrations (/app/immich/server/dist/repositories/database.repository.js:169:9)
at async /app/immich/server/dist/services/database.service.js:134:17
at async /app/immich/server/dist/repositories/database.repository.js:177:23 {
...
Vectors is enabled on my separate psql container using tensorchord/pgvecto-rs:pg14-v0.2.0
docker image for postgres container.
Manually running CREATE TABLE face_search ("faceId" uuid PRIMARY KEY REFERENCES asset_faces(id) ON DELETE CASCADE, embedding vector(512) NOT NULL );
via psql as immich
user against configured immich
user is successful, noml images still fail to start.
I believe issue is erroneous ,
at end of query instead of ;
.
Seeing exactly same issue.
I have the same issue as well. Tried removing and re-added vectors with the same error. Issue is not solved on vectors 0.2.0 or 0.2.1 (0.3.X isnt compatible with immich yet). I also ran the command manually as the same user/database, and still get the same error.
I will say I did a new install for giggles on 107.2 and it’s working fine.
Are you guys all running the noml
version?
If yes, this is probably an issue with one of the migration script shipped with v1.107.0
I probably have the same issue with the main
version.
QueryFailedError: the symbol _vectors_typmod_in is removed in the extension; please run extension update scripts
at PostgresQueryRunner.query (/app/immich/server/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:219:19)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async AddFaceSearchRelation1718486162779.up (/app/immich/server/dist/migrations/1718486162779-AddFaceSearchRelation.js:12:9)
at async MigrationExecutor.executePendingMigrations (/app/immich/server/node_modules/typeorm/migration/MigrationExecutor.js:225:17)
at async DataSource.runMigrations (/app/immich/server/node_modules/typeorm/data-source/DataSource.js:265:35)
at async DatabaseRepository.runMigrations (/app/immich/server/dist/repositories/database.repository.js:169:9)
at async /app/immich/server/dist/services/database.service.js:134:17
at async /app/immich/server/dist/repositories/database.repository.js:177:23 {
query: '\n' +
' CREATE TABLE face_search (\n' +
' "faceId" uuid PRIMARY KEY REFERENCES asset_faces(id) ON DELETE CASCADE,\n' +
' embedding vector(512) NOT NULL )',
parameters: undefined,
driverError: error: the symbol _vectors_typmod_in is removed in the extension; please run extension update scripts
at /app/immich/server/node_modules/pg/lib/client.js:526:17
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async PostgresQueryRunner.query (/app/immich/server/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:184:25)
at async AddFaceSearchRelation1718486162779.up (/app/immich/server/dist/migrations/1718486162779-AddFaceSearchRelation.js:12:9)
at async MigrationExecutor.executePendingMigrations (/app/immich/server/node_modules/typeorm/migration/MigrationExecutor.js:225:17)
at async DataSource.runMigrations (/app/immich/server/node_modules/typeorm/data-source/DataSource.js:265:35)
at async DatabaseRepository.runMigrations (/app/immich/server/dist/repositories/database.repository.js:169:9)
at async /app/immich/server/dist/services/database.service.js:134:17
at async /app/immich/server/dist/repositories/database.repository.js:177:23 {
I had the same error, in my case it was caused by incorrect permissions in the database. I'm running Immich using a Postgres non-superuser immich
. I had to run the following query as a superuser to fix it:
ALTER SCHEMA vectors OWNER TO immich;
This caused another error to show up:
QueryFailedError: permission denied for view pg_vector_index_stat
at PostgresQueryRunner.query (/app/immich/server/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:219:19)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async DataSource.query (/app/immich/server/node_modules/typeorm/data-source/DataSource.js:350:20)
at async DatabaseRepository.shouldReindex (/app/immich/server/dist/repositories/database.repository.js:119:25)
at async /app/immich/server/dist/services/database.service.js:122:21
at async /app/immich/server/dist/repositories/database.repository.js:177:23 {
query: '\n' +
' SELECT idx_status\n' +
' FROM pg_vector_index_stat\n' +
' WHERE indexname = $1',
parameters: [ 'clip_index' ],
driverError: error: permission denied for view pg_vector_index_stat
at /app/immich/server/node_modules/pg/lib/client.js:526:17
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async PostgresQueryRunner.query (/app/immich/server/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:184:25)
at async DataSource.query (/app/immich/server/node_modules/typeorm/data-source/DataSource.js:350:20)
at async DatabaseRepository.shouldReindex (/app/immich/server/dist/repositories/database.repository.js:119:25)
at async /app/immich/server/dist/services/database.service.js:122:21
at async /app/immich/server/dist/repositories/database.repository.js:177:23 {
Which I fixed using this query:
ALTER VIEW pg_vector_index_stat OWNER TO immich;
Then everything started working again.
Had an extra '
in the above command which I thought I had parsed correctly. Running the command mentioned in my initial comment as immich along with the above ALTER commands and 107.2
still does not start correctly.
Now I am getting QueryFailedError: relation "face_search" already exists
I also ran the two ALTER commands above. Where I was met with the same QueryFailedError error for face_search. Since I had manually run the command to create the table I went ahead and dropped it. Next restart I got this error:
QueryFailedError: column "embedding" of relation "smart_search" does not exist
Are you guys all running the
noml
version?If yes, this is probably an issue with one of the migration script shipped with
v1.107.0
I tried using both noml and latest, both ended up with the same error messages. However I do have DISABLE_MACHINE_LEARNING (tried both true and false with each version with no avail) in my docker config.
In my case the following queries solved the problem:
CREATE TABLE face_search ("faceId" uuid PRIMARY KEY REFERENCES asset_faces(id) ON DELETE CASCADE, embedding vectors.vector(512) NOT NULL );
INSERT INTO "migrations" ("id", "timestamp", "name") VALUES (153, 1718486162779, 'AddFaceSearchRelation1718486162779');
After that Immich v1.107.2
started normally and everything seems to work using tensorchord/pgvecto-rs:pg15-v0.2.1
.
INSERT INTO "migrations" ("id", "timestamp", "name") VALUES (153, 1718486162779, 'AddFaceSearchRelation1718486162779');
That fixed it for me, thanks.
I'm not using noml
version, but upgrading the standard version from 106.4
to 107.2
still fails with the following error
Migration "AddFaceSearchRelation1718486162779" failed, error: internal error: entered unreachable code
QueryFailedError: internal error: entered unreachable code
at PostgresQueryRunner.query (/app/immich/server/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:219:19)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async AddFaceSearchRelation1718486162779.up (/app/immich/server/dist/migrations/1718486162779-AddFaceSearchRelation.js:23:9)
at async MigrationExecutor.executePendingMigrations (/app/immich/server/node_modules/typeorm/migration/MigrationExecutor.js:225:17)
at async DataSource.runMigrations (/app/immich/server/node_modules/typeorm/data-source/DataSource.js:265:35)
at async DatabaseRepository.runMigrations (/app/immich/server/dist/repositories/database.repository.js:169:9)
at async /app/immich/server/dist/services/database.service.js:134:17
at async /app/immich/server/dist/repositories/database.repository.js:177:23 {
query: '\n' +
' CREATE INDEX face_index ON face_search\n' +
' USING hnsw (embedding vector_cosine_ops)\n' +
' WITH (ef_construction = 300, m = 16)',
parameters: undefined,
Running the following two postgres commands provided by @oli906 solves the issue for me. It works fine so far.
CREATE TABLE face_search ("faceId" uuid PRIMARY KEY REFERENCES asset_faces(id) ON DELETE CASCADE, embedding vectors.vector(512) NOT NULL );
INSERT INTO "migrations" ("id", "timestamp", "name") VALUES (153, 1718486162779, 'AddFaceSearchRelation1718486162779');
I'm using tensorchord/pgvecto-rs:pg14-v0.2.0
Seems like theres enough solutions here - perhaps if any other similar issues arise, open an upstream issue (not an issue with this repo/container)
Was able to get my installation to 107.2 to upgrade by inputting the postgres authentication into the container which I had never had to do before since first installing around 1.61. The ALTER commands above didn't allow my immich user to see the vectors extension but I guess have a work around for when new table is needed like what was added in 107.0
.
Was able to get my installation to 107.2 to upgrade by inputting the postgres authentication into the container which I had never had to do before since first installing around 1.61. The ALTER commands above didn't allow my immich user to see the vectors extension but I guess have a work around for when new table is needed like what was added in
107.0
.
Where did you “input Postgres info” into container at?