@@ -12,6 +12,8 @@ Run `docker exec -it immich_postgres psql --dbname=<DB_DATABASE_NAME> --username
12
12
13
13
## Assets
14
14
15
+ ### Name
16
+
15
17
::: note
16
18
The ` "originalFileName" ` column is the name of the file at time of upload, including the extension.
17
19
:::
@@ -27,6 +29,8 @@ SELECT * FROM "asset" WHERE "originalPath" = 'upload/library/admin/2023/2023-09-
27
29
SELECT * FROM " asset" WHERE " originalPath" LIKE ' upload/library/admin/2023/%' ;
28
30
```
29
31
32
+ ### ID
33
+
30
34
``` sql title="Find by ID"
31
35
SELECT * FROM " asset" WHERE " id" = ' 9f94e60f-65b6-47b7-ae44-a4df7b57f0e9' ;
32
36
```
@@ -35,6 +39,8 @@ SELECT * FROM "asset" WHERE "id" = '9f94e60f-65b6-47b7-ae44-a4df7b57f0e9';
35
39
SELECT * FROM " asset" WHERE " id" ::text LIKE ' %ab431d3a%' ;
36
40
```
37
41
42
+ ### Checksum
43
+
38
44
::: note
39
45
You can calculate the checksum for a particular file by using the command ` sha1sum <filename> ` .
40
46
:::
@@ -51,6 +57,8 @@ SELECT T1."checksum", array_agg(T2."id") ids FROM "asset" T1
51
57
WHERE T1." deletedAt" IS NULL GROUP BY T1." checksum" ;
52
58
```
53
59
60
+ ### Metadata
61
+
54
62
``` sql title="Live photos"
55
63
SELECT * FROM " asset" WHERE " livePhotoVideoId" IS NOT NULL ;
56
64
```
@@ -77,27 +85,37 @@ SELECT * FROM "asset"
77
85
ORDER BY " asset_exif" ." fileSizeInByte" ASC ;
78
86
```
79
87
80
- ``` sql title="Without thumbnails"
81
- SELECT * FROM " asset" WHERE " asset" ." previewPath" IS NULL OR " asset" ." thumbnailPath" IS NULL ;
82
- ```
88
+ ### Type
83
89
84
90
``` sql title="By type"
85
91
SELECT * FROM " asset" WHERE " asset" ." type" = ' VIDEO' ;
86
92
SELECT * FROM " asset" WHERE " asset" ." type" = ' IMAGE' ;
87
93
```
88
94
89
95
``` sql title="Count by type"
90
- SELECT " asset" ." type" , COUNT (1 ) FROM " asset" GROUP BY " asset" ." type" ;
96
+ SELECT " asset" ." type" , COUNT (* ) FROM " asset" GROUP BY " asset" ." type" ;
91
97
```
92
98
93
99
``` sql title="Count by type (per user)"
94
- SELECT " user" ." email" , " asset" ." type" , COUNT (1 ) FROM " asset"
100
+ SELECT " user" ." email" , " asset" ." type" , COUNT (* ) FROM " asset"
95
101
JOIN " user" ON " asset" ." ownerId" = " user" ." id"
96
102
GROUP BY " asset" ." type" , " user" ." email" ORDER BY " user" ." email" ;
97
103
```
98
104
99
- ``` sql title="Failed file movements"
100
- SELECT * FROM " move_history" ;
105
+ ## Tags
106
+
107
+ ``` sql title="Count by tag"
108
+ SELECT " t" ." value" AS " tag_name" , COUNT (* ) AS " number_assets" FROM " tag" " t"
109
+ JOIN " tag_asset" " ta" ON " t" ." id" = " ta" ." tagsId" JOIN " asset" " a" ON " ta" ." assetsId" = " a" ." id"
110
+ WHERE " a" ." visibility" != ' hidden'
111
+ GROUP BY " t" ." value" ORDER BY " number_assets" DESC ;
112
+ ```
113
+
114
+ ``` sql title="Count by tag (per user)"
115
+ SELECT " t" ." value" AS " tag_name" , " u" ." email" as " user_email" , COUNT (* ) AS " number_assets" FROM " tag" " t"
116
+ JOIN " tag_asset" " ta" ON " t" ." id" = " ta" ." tagsId" JOIN " asset" " a" ON " ta" ." assetsId" = " a" ." id" JOIN " user" " u" ON " a" ." ownerId" = " u" ." id"
117
+ WHERE " a" ." visibility" != ' hidden'
118
+ GROUP BY " t" ." value" , " u" ." email" ORDER BY " number_assets" DESC ;
101
119
```
102
120
103
121
## Users
@@ -110,18 +128,30 @@ SELECT * FROM "user";
110
128
SELECT " user" .* FROM " user" JOIN " asset" ON " user" ." id" = " asset" ." ownerId" WHERE " asset" ." id" = ' fa310b01-2f26-4b7a-9042-d578226e021f' ;
111
129
```
112
130
113
- ## System Config
131
+ ## Persons
132
+
133
+ ``` sql title="Delete person and unset it for the faces it was associated with"
134
+ DELETE FROM " person" WHERE " name" = ' PersonNameHere' ;
135
+ ```
136
+
137
+ ## System
138
+
139
+ ### Config
114
140
115
141
``` sql title="Custom settings"
116
142
SELECT " key" , " value" FROM " system_metadata" WHERE " key" = ' system-config' ;
117
143
```
118
144
119
145
(Only used when not using the [ config file] ( /docs/install/config-file ) )
120
146
121
- ## Persons
147
+ ### File properties
122
148
123
- ``` sql title="Delete person and unset it for the faces it was associated with"
124
- DELETE FROM " person" WHERE " name" = ' PersonNameHere' ;
149
+ ``` sql title="Without thumbnails"
150
+ SELECT * FROM " asset" WHERE " asset" ." previewPath" IS NULL OR " asset" ." thumbnailPath" IS NULL ;
151
+ ```
152
+
153
+ ``` sql title="Failed file movements"
154
+ SELECT * FROM " move_history" ;
125
155
```
126
156
127
157
## Postgres internal
0 commit comments