add precision=3 to datetime where it is used, remove unused entities, add migration for dropping unused table

This commit is contained in:
einhornimmond 2025-05-21 14:30:02 +02:00
parent a67866908e
commit 55a2a6ac30
13 changed files with 52 additions and 75 deletions

View File

@ -1,33 +0,0 @@
import { Decimal } from 'decimal.js-light'
import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm'
import { DecimalTransformer } from '../src/typeorm/DecimalTransformer'
@Entity('admin_pending_creations')
export class AdminPendingCreation extends BaseEntity {
@PrimaryGeneratedColumn('increment', { unsigned: true })
id: number
@Column({ type: 'bigint', unsigned: true, nullable: false })
userId: number
@Column({ type: 'datetime', default: () => 'CURRENT_TIMESTAMP' })
created: Date
@Column({ type: 'datetime', nullable: false })
date: Date
@Column({ type: 'varchar', length: 255, nullable: false, collation: 'utf8mb4_unicode_ci' })
memo: string
@Column({
type: 'decimal',
precision: 40,
scale: 20,
nullable: false,
transformer: DecimalTransformer,
})
amount: Decimal
@Column()
moderator: number
}

View File

@ -39,7 +39,7 @@ export class Community extends BaseEntity {
})
communityUuid: string | null
@Column({ name: 'authenticated_at', type: 'datetime', nullable: true })
@Column({ name: 'authenticated_at', type: 'datetime', precision: 3, nullable: true })
authenticatedAt: Date | null
@Column({ name: 'name', type: 'varchar', length: 40, nullable: true })
@ -48,7 +48,7 @@ export class Community extends BaseEntity {
@Column({ name: 'description', type: 'varchar', length: 255, nullable: true })
description: string | null
@CreateDateColumn({ name: 'creation_date', type: 'datetime', nullable: true })
@CreateDateColumn({ name: 'creation_date', type: 'datetime', precision: 3, nullable: true })
creationDate: Date | null
@Column({ name: 'gms_api_key', type: 'varchar', length: 512, nullable: true, default: null })
@ -66,6 +66,7 @@ export class Community extends BaseEntity {
@CreateDateColumn({
name: 'created_at',
type: 'datetime',
precision: 3,
default: () => 'CURRENT_TIMESTAMP(3)',
nullable: false,
})
@ -74,6 +75,7 @@ export class Community extends BaseEntity {
@UpdateDateColumn({
name: 'updated_at',
type: 'datetime',
precision: 3,
onUpdate: 'CURRENT_TIMESTAMP(3)',
nullable: true,
})

View File

@ -25,12 +25,13 @@ export class DltTransaction extends BaseEntity {
@Column({
name: 'created_at',
type: 'datetime',
precision: 3,
default: () => 'CURRENT_TIMESTAMP(3)',
nullable: false,
})
createdAt: Date
@Column({ name: 'verified_at', type: 'datetime', nullable: true, default: null })
@Column({ name: 'verified_at', type: 'datetime', precision: 3, nullable: true, default: null })
verifiedAt: Date | null
@OneToOne(

View File

@ -27,6 +27,7 @@ export class Event extends BaseEntity {
@CreateDateColumn({
name: 'created_at',
type: 'datetime',
precision: 3,
default: () => 'CURRENT_TIMESTAMP(3)',
nullable: false,
})

View File

@ -27,18 +27,19 @@ export class FederatedCommunity extends BaseEntity {
@Column({ name: 'end_point', type: 'varchar', length: 255, nullable: false })
endPoint: string
@Column({ name: 'last_announced_at', type: 'datetime', nullable: true })
@Column({ name: 'last_announced_at', type: 'datetime', precision: 3, nullable: true })
lastAnnouncedAt: Date | null
@Column({ name: 'verified_at', type: 'datetime', nullable: true })
@Column({ name: 'verified_at', type: 'datetime', precision: 3, nullable: true })
verifiedAt: Date | null
@Column({ name: 'last_error_at', type: 'datetime', nullable: true })
@Column({ name: 'last_error_at', type: 'datetime', precision: 3, nullable: true })
lastErrorAt: Date | null
@CreateDateColumn({
name: 'created_at',
type: 'datetime',
precision: 3,
default: () => 'CURRENT_TIMESTAMP(3)',
nullable: false,
})
@ -47,6 +48,7 @@ export class FederatedCommunity extends BaseEntity {
@UpdateDateColumn({
name: 'updated_at',
type: 'datetime',
precision: 3,
onUpdate: 'CURRENT_TIMESTAMP(3)',
nullable: true,
})

View File

@ -1,26 +0,0 @@
import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm'
// Moriz: I do not like the idea of having two user tables
@Entity('login_email_opt_in')
export class LoginEmailOptIn extends BaseEntity {
@PrimaryGeneratedColumn('increment', { unsigned: true })
id: number
@Column({ name: 'user_id', type: 'bigint', unsigned: true, nullable: false })
userId: number
@Column({ name: 'verification_code', type: 'bigint', unsigned: true, unique: true })
verificationCode: BigInt
@Column({ name: 'email_opt_in_type_id', type: 'int', unsigned: true, nullable: false })
emailOptInTypeId: number
@Column({ name: 'created', type: 'datetime', default: () => 'CURRENT_TIMESTAMP' })
createdAt: Date
@Column({ name: 'resend_count', type: 'int', unsigned: true, default: 0 })
resendCount: number
@Column({ name: 'updated', type: 'datetime', default: () => 'CURRENT_TIMESTAMP' })
updatedAt: Date
}

View File

@ -47,6 +47,7 @@ export class PendingTransaction extends BaseEntity {
@Column({
name: 'balance_date',
type: 'datetime',
precision: 3,
default: () => 'CURRENT_TIMESTAMP(3)',
nullable: false,
})
@ -64,6 +65,7 @@ export class PendingTransaction extends BaseEntity {
@Column({
name: 'decay_start',
type: 'datetime',
precision: 3,
nullable: true,
default: null,
})
@ -72,7 +74,7 @@ export class PendingTransaction extends BaseEntity {
@Column({ type: 'varchar', length: 255, nullable: false, collation: 'utf8mb4_unicode_ci' })
memo: string
@Column({ name: 'creation_date', type: 'datetime', nullable: true, default: null })
@Column({ name: 'creation_date', type: 'datetime', precision: 3, nullable: true, default: null })
creationDate: Date | null
@Column({ name: 'user_id', type: 'bigint', unsigned: true, nullable: false })

View File

@ -46,7 +46,8 @@ export class Transaction extends BaseEntity {
@Column({
name: 'balance_date',
type: 'datetime',
default: () => 'CURRENT_TIMESTAMP',
precision: 3,
default: () => 'CURRENT_TIMESTAMP(3)',
nullable: false,
})
balanceDate: Date
@ -63,6 +64,7 @@ export class Transaction extends BaseEntity {
@Column({
name: 'decay_start',
type: 'datetime',
precision: 3,
nullable: true,
default: null,
})
@ -71,7 +73,7 @@ export class Transaction extends BaseEntity {
@Column({ type: 'varchar', length: 255, nullable: false, collation: 'utf8mb4_unicode_ci' })
memo: string
@Column({ name: 'creation_date', type: 'datetime', nullable: true, default: null })
@Column({ name: 'creation_date', type: 'datetime', precision: 3, nullable: true, default: null })
creationDate: Date | null
@Column({ name: 'user_id', type: 'bigint', unsigned: true, nullable: false })

View File

@ -99,12 +99,13 @@ export class User extends BaseEntity {
@Column({
name: 'created_at',
type: 'datetime',
precision: 3,
default: () => 'CURRENT_TIMESTAMP(3)',
nullable: false,
})
createdAt: Date
@DeleteDateColumn({ name: 'deleted_at', type: 'datetime', nullable: true })
@DeleteDateColumn({ name: 'deleted_at', type: 'datetime', precision: 3, nullable: true })
deletedAt: Date | null
@Column({ type: 'bigint', default: 0, unsigned: true })
@ -180,7 +181,13 @@ export class User extends BaseEntity {
@Column({ name: 'gms_registered', type: 'bool', default: false })
gmsRegistered: boolean
@Column({ name: 'gms_registered_at', type: 'datetime', default: null, nullable: true })
@Column({
name: 'gms_registered_at',
type: 'datetime',
precision: 3,
default: null,
nullable: true,
})
gmsRegisteredAt: Date | null
@Column({ name: 'humhub_allowed', type: 'bool', default: false })

View File

@ -94,6 +94,7 @@ export class UserContact extends BaseEntity {
@CreateDateColumn({
name: 'created_at',
precision: 3,
default: () => 'CURRENT_TIMESTAMP(3)',
nullable: false,
})
@ -101,11 +102,12 @@ export class UserContact extends BaseEntity {
@UpdateDateColumn({
name: 'updated_at',
precision: 3,
nullable: true,
onUpdate: 'CURRENT_TIMESTAMP(3)',
})
updatedAt: Date | null
@DeleteDateColumn({ name: 'deleted_at', nullable: true })
@DeleteDateColumn({ name: 'deleted_at', precision: 3, nullable: true })
deletedAt: Date | null
}

View File

@ -15,12 +15,13 @@ export class UserRole extends BaseEntity {
@Column({
name: 'created_at',
type: 'datetime',
precision: 3,
default: () => 'CURRENT_TIMESTAMP(3)',
nullable: false,
})
createdAt: Date
@Column({ name: 'updated_at', type: 'datetime', nullable: true, default: null })
@Column({ name: 'updated_at', type: 'datetime', precision: 3, nullable: true, default: null })
updatedAt: Date | null
@ManyToOne(

View File

@ -7,7 +7,6 @@ import { DltTransaction } from './DltTransaction'
import { Event } from './Event'
import { FederatedCommunity } from './FederatedCommunity'
import { LoginElopageBuys } from './LoginElopageBuys'
import { LoginEmailOptIn } from './LoginEmailOptIn'
import { Migration } from './Migration'
import { OpenaiThreads } from './OpenaiThreads'
import { PendingTransaction } from './PendingTransaction'
@ -27,7 +26,6 @@ export {
Event,
FederatedCommunity,
LoginElopageBuys,
LoginEmailOptIn,
Migration,
ProjectBranding,
OpenaiThreads,
@ -50,7 +48,6 @@ export const entities = [
Event,
FederatedCommunity,
LoginElopageBuys,
LoginEmailOptIn,
Migration,
ProjectBranding,
OpenaiThreads,

View File

@ -0,0 +1,19 @@
export async function upgrade(queryFn: (query: string, values?: any[]) => Promise<Array<any>>) {
await queryFn(`DROP TABLE login_email_opt_in;`)
}
export async function downgrade(queryFn: (query: string, values?: any[]) => Promise<Array<any>>) {
await queryFn(`
CREATE TABLE IF NOT EXISTS \`login_email_opt_in\` (
\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
\`user_id\` int(11) NOT NULL,
\`verification_code\` bigint(20) unsigned NOT NULL,
\`email_opt_in_type_id\` int(11) NOT NULL,
\`created\` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
\`resend_count\` int(11) DEFAULT '0',
\`updated\` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (\`id\`),
UNIQUE KEY \`verification_code\` (\`verification_code\`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
`)
}