mirror of
				https://github.com/immich-app/immich.git
				synced 2025-10-30 18:35:00 -04:00 
			
		
		
		
	docs: update "move all data" instructions in FAQ (#8976)
* Update FAQ.mdx chore(docs): update "move all data" FAQ instructions. * Apply suggestions from code review fix: (apply suggestions) use sql-compliant comments Co-authored-by: Matthew Momjian <50788000+mmomjian@users.noreply.github.com> * fix: Update FAQ.mdx --------- Co-authored-by: Matthew Momjian <50788000+mmomjian@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									be4a783845
								
							
						
					
					
						commit
						c9a079201a
					
				| @ -117,7 +117,7 @@ For example, say you have existing transcodes with the policy "Videos higher tha | ||||
| 
 | ||||
| No. Our design principle is that the original assets should always be untouched. | ||||
| 
 | ||||
| ### How can I move all data (photos, persons, albums) from one user to another? | ||||
| ### How can I move all data (photos, persons, albums, libraries) from one user to another? | ||||
| 
 | ||||
| This is not officially supported but can be accomplished with some database updates. You can do this on the command line (in the PostgreSQL container using the `psql` command), or you can add, for example, an [Adminer](https://www.adminer.org/) container to the `docker-compose.yml` file so that you can use a web interface. | ||||
| 
 | ||||
| @ -128,18 +128,21 @@ This is not officially supported but can be accomplished with some database upda | ||||
| 
 | ||||
| 2. Find the ID of both the 'source' and the 'destination' user (it's the id column in the `users` table) | ||||
| 
 | ||||
| 3. Three tables need to be updated: | ||||
| 3. Four tables need to be updated: | ||||
| 
 | ||||
| ```sql | ||||
| // Reassign albums | ||||
| -- reassign albums | ||||
| UPDATE albums SET "ownerId" = '<destinationId>' WHERE "ownerId" = '<sourceId>'; | ||||
| 
 | ||||
| // Reassign people | ||||
| -- reassign people | ||||
| UPDATE person SET "ownerId" = '<destinationId>' WHERE "ownerId" = '<sourceId>'; | ||||
| 
 | ||||
| // reassign assets | ||||
| -- reassign assets | ||||
| UPDATE assets SET "ownerId" = '<destinationId>' WHERE "ownerId" = '<sourceId>' | ||||
|  AND CHECKSUM NOT IN (SELECT CHECKSUM FROM assets WHERE "ownerId" = '<destinationId>'); | ||||
| 
 | ||||
| -- reassign external libraries | ||||
| UPDATE libraries SET "ownerId" = '<destinationId>' WHERE "ownerId" = '<sourceId>'; | ||||
| ``` | ||||
| 
 | ||||
| 4. There might be left-over assets in the 'source' user's library if they are skipped by the last query because of duplicate checksums. These are probably duplicates anyway, and can probably be removed. | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user