mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
finished up Table definition and migration
This commit is contained in:
parent
80a059b94d
commit
6d8b11aeb8
@ -1,12 +1,12 @@
|
|||||||
import { Contribution } from '../Contribution'
|
import { Contribution } from '../Contribution'
|
||||||
import { ContributionMessage } from '../ContributionMessage'
|
import { ContributionMessage } from '../ContributionMessage'
|
||||||
import { User } from '../User'
|
import { User } from '../User'
|
||||||
|
import { Transaction } from '../Transaction'
|
||||||
import Decimal from 'decimal.js-light'
|
import Decimal from 'decimal.js-light'
|
||||||
import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, Transaction } from 'typeorm'
|
import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, ManyToOne, JoinColumn } from 'typeorm'
|
||||||
import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer'
|
import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer'
|
||||||
|
|
||||||
@Entity('event')
|
@Entity('events')
|
||||||
// TODO tablename event_protocol
|
|
||||||
export class Event extends BaseEntity {
|
export class Event extends BaseEntity {
|
||||||
@PrimaryGeneratedColumn('increment', { unsigned: true })
|
@PrimaryGeneratedColumn('increment', { unsigned: true })
|
||||||
id: number
|
id: number
|
||||||
@ -14,28 +14,24 @@ export class Event extends BaseEntity {
|
|||||||
@Column({ length: 100, nullable: false, collation: 'utf8mb4_unicode_ci' })
|
@Column({ length: 100, nullable: false, collation: 'utf8mb4_unicode_ci' })
|
||||||
type: string
|
type: string
|
||||||
|
|
||||||
// TODO proper field type
|
@CreateDateColumn({ name: 'created_at', type: 'datetime', default: () => 'CURRENT_TIMESTAMP()' , nullable: false })
|
||||||
@Column({ name: 'created_at', type: 'datetime', default: () => 'CURRENT_TIMESTAMP' })
|
|
||||||
createdAt: Date
|
createdAt: Date
|
||||||
|
|
||||||
// TODO field name user_id
|
|
||||||
// @Column({ name: 'affected_user_id', unsigned: true, nullable: false })
|
// @Column({ name: 'affected_user_id', unsigned: true, nullable: false })
|
||||||
// affectedUserId: number
|
// affectedUserId: number
|
||||||
|
|
||||||
@ManyToOne(() => User)
|
@ManyToOne(() => User)
|
||||||
@JoinColumn({ name: 'affected_user_id', referencedColumnName: 'id' })
|
@JoinColumn({ name: 'affected_user_id', referencedColumnName: 'id' })
|
||||||
affectedUser: User | null
|
affectedUser: User
|
||||||
|
|
||||||
// TODO new column
|
// TODO potentially save actingRole as well
|
||||||
// TODO potentially save actingRole aswell
|
|
||||||
// @Column({ name: 'acting_user_id', unsigned: true, nullable: false })
|
// @Column({ name: 'acting_user_id', unsigned: true, nullable: false })
|
||||||
// actingUserId: number
|
// actingUserId: number
|
||||||
|
|
||||||
@ManyToOne(() => User)
|
@ManyToOne(() => User)
|
||||||
@JoinColumn({ name: 'acting_user_id', referencedColumnName: 'id' })
|
@JoinColumn({ name: 'acting_user_id', referencedColumnName: 'id' })
|
||||||
actingUser: User | null
|
actingUser: User
|
||||||
|
|
||||||
// TODO rename column x_user_id
|
|
||||||
// @Column({ name: 'involved_user_id', type: 'int', unsigned: true, nullable: true })
|
// @Column({ name: 'involved_user_id', type: 'int', unsigned: true, nullable: true })
|
||||||
// involvedUserId: number | null
|
// involvedUserId: number | null
|
||||||
|
|
||||||
@ -43,9 +39,6 @@ export class Event extends BaseEntity {
|
|||||||
@JoinColumn({ name: 'involved_user_id', referencedColumnName: 'id' })
|
@JoinColumn({ name: 'involved_user_id', referencedColumnName: 'id' })
|
||||||
involvedUser: User | null
|
involvedUser: User | null
|
||||||
|
|
||||||
// TODO drop column xCommunityId
|
|
||||||
|
|
||||||
// TODO rename column transaction_id
|
|
||||||
// @Column({ name: 'involved_transaction_id', type: 'int', unsigned: true, nullable: true })
|
// @Column({ name: 'involved_transaction_id', type: 'int', unsigned: true, nullable: true })
|
||||||
// involvedTransactionId: number | null
|
// involvedTransactionId: number | null
|
||||||
|
|
||||||
@ -53,7 +46,6 @@ export class Event extends BaseEntity {
|
|||||||
@JoinColumn({ name: 'involved_transaction_id', referencedColumnName: 'id' })
|
@JoinColumn({ name: 'involved_transaction_id', referencedColumnName: 'id' })
|
||||||
involvedTransaction: Transaction | null
|
involvedTransaction: Transaction | null
|
||||||
|
|
||||||
// TODO rename column contribution_id
|
|
||||||
// @Column({ name: 'involved_contribution_id', type: 'int', unsigned: true, nullable: true })
|
// @Column({ name: 'involved_contribution_id', type: 'int', unsigned: true, nullable: true })
|
||||||
// involvedContributionId: number | null
|
// involvedContributionId: number | null
|
||||||
|
|
||||||
@ -61,8 +53,6 @@ export class Event extends BaseEntity {
|
|||||||
@JoinColumn({ name: 'involved_contribution_id', referencedColumnName: 'id' })
|
@JoinColumn({ name: 'involved_contribution_id', referencedColumnName: 'id' })
|
||||||
involvedContribution: Contribution | null
|
involvedContribution: Contribution | null
|
||||||
|
|
||||||
// TODO move column
|
|
||||||
// TODO rename column message_id
|
|
||||||
// TEST do we need the Id field definition?
|
// TEST do we need the Id field definition?
|
||||||
// @Column({ name: 'involved_contribution_message_id', type: 'int', unsigned: true, nullable: true })
|
// @Column({ name: 'involved_contribution_message_id', type: 'int', unsigned: true, nullable: true })
|
||||||
// involvedContributionMessageId: number | null
|
// involvedContributionMessageId: number | null
|
||||||
|
|||||||
@ -8,26 +8,47 @@
|
|||||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||||
|
|
||||||
export async function upgrade(queryFn: (query: string, values?: any[]) => Promise<Array<any>>) {
|
export async function upgrade(queryFn: (query: string, values?: any[]) => Promise<Array<any>>) {
|
||||||
|
await queryFn('RENAME TABLE `event_protocol` TO `events`;')
|
||||||
|
await queryFn('ALTER TABLE `events` RENAME COLUMN `user_id` TO `affected_user_id`;')
|
||||||
|
|
||||||
await queryFn(
|
await queryFn(
|
||||||
'ALTER TABLE `communities` MODIFY COLUMN `last_announced_at` datetime(3) AFTER `end_point`;',
|
'ALTER TABLE `events` ADD COLUMN `acting_user_id` int(10) unsigned DEFAULT NULL AFTER `affected_user_id`;',
|
||||||
|
)
|
||||||
|
await queryFn('UPDATE `events` SET `acting_user_id` = `affected_user_id`;')
|
||||||
|
await queryFn(
|
||||||
|
'ALTER TABLE `events` MODIFY COLUMN `acting_user_id` int(10) unsigned NOT NULL AFTER `affected_user_id`;',
|
||||||
|
)
|
||||||
|
|
||||||
|
await queryFn('ALTER TABLE `events` RENAME COLUMN `x_user_id` TO `involved_user_id`;')
|
||||||
|
await queryFn('ALTER TABLE `events` DROP COLUMN `x_community_id`;')
|
||||||
|
await queryFn('ALTER TABLE `events` RENAME COLUMN `transaction_id` TO `involved_transaction_id`;')
|
||||||
|
await queryFn(
|
||||||
|
'ALTER TABLE `events` RENAME COLUMN `contribution_id` TO `involved_contribution_id`;',
|
||||||
)
|
)
|
||||||
await queryFn(
|
await queryFn(
|
||||||
'ALTER TABLE `communities` ADD COLUMN `foreign` tinyint(4) NOT NULL DEFAULT 1 AFTER `id`;',
|
'ALTER TABLE `events` MODIFY COLUMN `message_id` int(10) unsigned DEFAULT NULL AFTER `involved_contribution_id`;',
|
||||||
)
|
)
|
||||||
await queryFn(
|
await queryFn(
|
||||||
'ALTER TABLE `communities` ADD COLUMN `verified_at` datetime(3) AFTER `last_announced_at`;',
|
'ALTER TABLE `events` RENAME COLUMN `message_id` TO `involved_contribution_message_id`;',
|
||||||
)
|
|
||||||
await queryFn(
|
|
||||||
'ALTER TABLE `communities` ADD COLUMN `last_error_at` datetime(3) AFTER `verified_at`;',
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function downgrade(queryFn: (query: string, values?: any[]) => Promise<Array<any>>) {
|
export async function downgrade(queryFn: (query: string, values?: any[]) => Promise<Array<any>>) {
|
||||||
// write downgrade logic as parameter of queryFn
|
|
||||||
await queryFn(
|
await queryFn(
|
||||||
'ALTER TABLE `communities` MODIFY COLUMN `last_announced_at` datetime(3) NOT NULL AFTER `end_point`;',
|
'ALTER TABLE `events` RENAME COLUMN `involved_contribution_message_id` TO `message_id`;',
|
||||||
)
|
)
|
||||||
await queryFn('ALTER TABLE `communities` DROP COLUMN `foreign`;')
|
await queryFn(
|
||||||
await queryFn('ALTER TABLE `communities` DROP COLUMN `verified_at`;')
|
'ALTER TABLE `events` MODIFY COLUMN `message_id` int(10) unsigned DEFAULT NULL AFTER `amount`;',
|
||||||
await queryFn('ALTER TABLE `communities` DROP COLUMN `last_error_at`;')
|
)
|
||||||
|
await queryFn(
|
||||||
|
'ALTER TABLE `events` RENAME COLUMN `involved_contribution_id` TO `contribution_id`;',
|
||||||
|
)
|
||||||
|
await queryFn('ALTER TABLE `events` RENAME COLUMN `involved_transaction_id` TO `transaction_id`;')
|
||||||
|
await queryFn(
|
||||||
|
'ALTER TABLE `events` ADD COLUMN `x_community_id` int(10) unsigned DEFAULT NULL AFTER `involved_user_id`;',
|
||||||
|
)
|
||||||
|
await queryFn('ALTER TABLE `events` RENAME COLUMN `involved_user_id` TO `x_user_id`;')
|
||||||
|
await queryFn('ALTER TABLE `events` DROP COLUMN `acting_user_id`;')
|
||||||
|
await queryFn('ALTER TABLE `events` RENAME COLUMN `affected_user_id` TO `user_id`;')
|
||||||
|
await queryFn('RENAME TABLE `events` TO `event_protocol`;')
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user