feat: updateId uuidv7 column for all entities with updatedAt (#16353)

This commit is contained in:
Zack Pollard
2025-02-27 12:55:22 +00:00
committed by GitHub
parent 128d653fc6
commit 967c69317b
18 changed files with 222 additions and 4 deletions
+4
View File
@@ -25,6 +25,10 @@ export class ActivityEntity {
@UpdateDateColumn({ type: 'timestamptz' })
updatedAt!: Date;
@Index('IDX_activity_update_id')
@Column({ type: 'uuid', nullable: false, default: () => 'immich_uuid_v7()' })
updateId?: string;
@Column()
albumId!: string;
+5
View File
@@ -8,6 +8,7 @@ import {
CreateDateColumn,
DeleteDateColumn,
Entity,
Index,
JoinTable,
ManyToMany,
ManyToOne,
@@ -39,6 +40,10 @@ export class AlbumEntity {
@UpdateDateColumn({ type: 'timestamptz' })
updatedAt!: Date;
@Index('IDX_albums_update_id')
@Column({ type: 'uuid', nullable: false, default: () => 'immich_uuid_v7()' })
updateId?: string;
@DeleteDateColumn({ type: 'timestamptz' })
deletedAt!: Date | null;
+5 -1
View File
@@ -1,6 +1,6 @@
import { UserEntity } from 'src/entities/user.entity';
import { Permission } from 'src/enum';
import { Column, CreateDateColumn, Entity, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
import { Column, CreateDateColumn, Entity, Index, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
@Entity('api_keys')
export class APIKeyEntity {
@@ -27,4 +27,8 @@ export class APIKeyEntity {
@UpdateDateColumn({ type: 'timestamptz' })
updatedAt!: Date;
@Index('IDX_api_keys_update_id')
@Column({ type: 'uuid', nullable: false, default: () => 'immich_uuid_v7()' })
updateId?: string;
}
@@ -30,6 +30,10 @@ export class AssetFileEntity {
@UpdateDateColumn({ type: 'timestamptz' })
updatedAt!: Date;
@Index('IDX_asset_files_update_id')
@Column({ type: 'uuid', nullable: false, default: () => 'immich_uuid_v7()' })
updateId?: string;
@Column()
type!: AssetFileType;
+4
View File
@@ -96,6 +96,10 @@ export class AssetEntity {
@UpdateDateColumn({ type: 'timestamptz' })
updatedAt!: Date;
@Index('IDX_assets_update_id')
@Column({ type: 'uuid', nullable: false, default: () => 'immich_uuid_v7()' })
updateId?: string;
@DeleteDateColumn({ type: 'timestamptz', nullable: true })
deletedAt!: Date | null;
+5
View File
@@ -5,6 +5,7 @@ import {
CreateDateColumn,
DeleteDateColumn,
Entity,
Index,
JoinTable,
ManyToOne,
OneToMany,
@@ -42,6 +43,10 @@ export class LibraryEntity {
@UpdateDateColumn({ type: 'timestamptz' })
updatedAt!: Date;
@Index('IDX_libraries_update_id')
@Column({ type: 'uuid', nullable: false, default: () => 'immich_uuid_v7()' })
updateId?: string;
@DeleteDateColumn({ type: 'timestamptz' })
deletedAt?: Date;
+5
View File
@@ -6,6 +6,7 @@ import {
CreateDateColumn,
DeleteDateColumn,
Entity,
Index,
JoinTable,
ManyToMany,
ManyToOne,
@@ -30,6 +31,10 @@ export class MemoryEntity<T extends MemoryType = MemoryType> {
@UpdateDateColumn({ type: 'timestamptz' })
updatedAt!: Date;
@Index('IDX_memories_update_id')
@Column({ type: 'uuid', nullable: false, default: () => 'immich_uuid_v7()' })
updateId?: string;
@DeleteDateColumn({ type: 'timestamptz' })
deletedAt?: Date;
+14 -1
View File
@@ -1,5 +1,14 @@
import { UserEntity } from 'src/entities/user.entity';
import { Column, CreateDateColumn, Entity, JoinColumn, ManyToOne, PrimaryColumn, UpdateDateColumn } from 'typeorm';
import {
Column,
CreateDateColumn,
Entity,
Index,
JoinColumn,
ManyToOne,
PrimaryColumn,
UpdateDateColumn,
} from 'typeorm';
@Entity('partners')
export class PartnerEntity {
@@ -23,6 +32,10 @@ export class PartnerEntity {
@UpdateDateColumn({ type: 'timestamptz' })
updatedAt!: Date;
@Index('IDX_partners_update_id')
@Column({ type: 'uuid', nullable: false, default: () => 'immich_uuid_v7()' })
updateId?: string;
@Column({ type: 'boolean', default: false })
inTimeline!: boolean;
}
+5
View File
@@ -5,6 +5,7 @@ import {
Column,
CreateDateColumn,
Entity,
Index,
ManyToOne,
OneToMany,
PrimaryGeneratedColumn,
@@ -23,6 +24,10 @@ export class PersonEntity {
@UpdateDateColumn({ type: 'timestamptz' })
updatedAt!: Date;
@Index('IDX_person_update_id')
@Column({ type: 'uuid', nullable: false, default: () => 'immich_uuid_v7()' })
updateId?: string;
@Column()
ownerId!: string;
+5 -1
View File
@@ -1,7 +1,7 @@
import { ExpressionBuilder } from 'kysely';
import { DB } from 'src/db';
import { UserEntity } from 'src/entities/user.entity';
import { Column, CreateDateColumn, Entity, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
import { Column, CreateDateColumn, Entity, Index, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
@Entity('sessions')
export class SessionEntity {
@@ -23,6 +23,10 @@ export class SessionEntity {
@UpdateDateColumn({ type: 'timestamptz' })
updatedAt!: Date;
@Index('IDX_sessions_update_id')
@Column({ type: 'uuid', nullable: false, default: () => 'immich_uuid_v7()' })
updateId!: string;
@Column({ default: '' })
deviceType!: string;
@@ -1,6 +1,6 @@
import { SessionEntity } from 'src/entities/session.entity';
import { SyncEntityType } from 'src/enum';
import { Column, CreateDateColumn, Entity, ManyToOne, PrimaryColumn, UpdateDateColumn } from 'typeorm';
import { Column, CreateDateColumn, Entity, Index, ManyToOne, PrimaryColumn, UpdateDateColumn } from 'typeorm';
@Entity('session_sync_checkpoints')
export class SessionSyncCheckpointEntity {
@@ -19,6 +19,10 @@ export class SessionSyncCheckpointEntity {
@UpdateDateColumn({ type: 'timestamptz' })
updatedAt!: Date;
@Index('IDX_session_sync_checkpoints_update_id')
@Column({ type: 'uuid', nullable: false, default: () => 'immich_uuid_v7()' })
updateId?: string;
@Column()
ack!: string;
}
+5
View File
@@ -4,6 +4,7 @@ import {
Column,
CreateDateColumn,
Entity,
Index,
ManyToMany,
ManyToOne,
PrimaryGeneratedColumn,
@@ -30,6 +31,10 @@ export class TagEntity {
@UpdateDateColumn({ type: 'timestamptz' })
updatedAt!: Date;
@Index('IDX_tags_update_id')
@Column({ type: 'uuid', nullable: false, default: () => 'immich_uuid_v7()' })
updateId?: string;
@Column({ type: 'varchar', nullable: true, default: null })
color!: string | null;
+4
View File
@@ -58,6 +58,10 @@ export class UserEntity {
@UpdateDateColumn({ type: 'timestamptz' })
updatedAt!: Date;
@Index('IDX_users_update_id')
@Column({ type: 'uuid', nullable: false, default: () => 'immich_uuid_v7()' })
updateId?: string;
@OneToMany(() => TagEntity, (tag) => tag.user)
tags!: TagEntity[];