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 { ContributionMessage } from '../ContributionMessage'
|
||||
import { User } from '../User'
|
||||
import { Transaction } from '../Transaction'
|
||||
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'
|
||||
|
||||
@Entity('event')
|
||||
// TODO tablename event_protocol
|
||||
@Entity('events')
|
||||
export class Event extends BaseEntity {
|
||||
@PrimaryGeneratedColumn('increment', { unsigned: true })
|
||||
id: number
|
||||
@ -14,28 +14,24 @@ export class Event extends BaseEntity {
|
||||
@Column({ length: 100, nullable: false, collation: 'utf8mb4_unicode_ci' })
|
||||
type: string
|
||||
|
||||
// TODO proper field type
|
||||
@Column({ name: 'created_at', type: 'datetime', default: () => 'CURRENT_TIMESTAMP' })
|
||||
@CreateDateColumn({ name: 'created_at', type: 'datetime', default: () => 'CURRENT_TIMESTAMP()' , nullable: false })
|
||||
createdAt: Date
|
||||
|
||||
// TODO field name user_id
|
||||
// @Column({ name: 'affected_user_id', unsigned: true, nullable: false })
|
||||
// affectedUserId: number
|
||||
|
||||
@ManyToOne(() => User)
|
||||
@JoinColumn({ name: 'affected_user_id', referencedColumnName: 'id' })
|
||||
affectedUser: User | null
|
||||
affectedUser: User
|
||||
|
||||
// TODO new column
|
||||
// TODO potentially save actingRole aswell
|
||||
// TODO potentially save actingRole as well
|
||||
// @Column({ name: 'acting_user_id', unsigned: true, nullable: false })
|
||||
// actingUserId: number
|
||||
|
||||
@ManyToOne(() => User)
|
||||
@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 })
|
||||
// involvedUserId: number | null
|
||||
|
||||
@ -43,9 +39,6 @@ export class Event extends BaseEntity {
|
||||
@JoinColumn({ name: 'involved_user_id', referencedColumnName: 'id' })
|
||||
involvedUser: User | null
|
||||
|
||||
// TODO drop column xCommunityId
|
||||
|
||||
// TODO rename column transaction_id
|
||||
// @Column({ name: 'involved_transaction_id', type: 'int', unsigned: true, nullable: true })
|
||||
// involvedTransactionId: number | null
|
||||
|
||||
@ -53,7 +46,6 @@ export class Event extends BaseEntity {
|
||||
@JoinColumn({ name: 'involved_transaction_id', referencedColumnName: 'id' })
|
||||
involvedTransaction: Transaction | null
|
||||
|
||||
// TODO rename column contribution_id
|
||||
// @Column({ name: 'involved_contribution_id', type: 'int', unsigned: true, nullable: true })
|
||||
// involvedContributionId: number | null
|
||||
|
||||
@ -61,8 +53,6 @@ export class Event extends BaseEntity {
|
||||
@JoinColumn({ name: 'involved_contribution_id', referencedColumnName: 'id' })
|
||||
involvedContribution: Contribution | null
|
||||
|
||||
// TODO move column
|
||||
// TODO rename column message_id
|
||||
// TEST do we need the Id field definition?
|
||||
// @Column({ name: 'involved_contribution_message_id', type: 'int', unsigned: true, nullable: true })
|
||||
// involvedContributionMessageId: number | null
|
||||
|
||||
@ -8,26 +8,47 @@
|
||||
/* eslint-disable @typescript-eslint/no-explicit-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(
|
||||
'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(
|
||||
'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(
|
||||
'ALTER TABLE `communities` ADD COLUMN `verified_at` datetime(3) AFTER `last_announced_at`;',
|
||||
)
|
||||
await queryFn(
|
||||
'ALTER TABLE `communities` ADD COLUMN `last_error_at` datetime(3) AFTER `verified_at`;',
|
||||
'ALTER TABLE `events` RENAME COLUMN `message_id` TO `involved_contribution_message_id`;',
|
||||
)
|
||||
}
|
||||
|
||||
export async function downgrade(queryFn: (query: string, values?: any[]) => Promise<Array<any>>) {
|
||||
// write downgrade logic as parameter of 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('ALTER TABLE `communities` DROP COLUMN `verified_at`;')
|
||||
await queryFn('ALTER TABLE `communities` DROP COLUMN `last_error_at`;')
|
||||
await queryFn(
|
||||
'ALTER TABLE `events` MODIFY COLUMN `message_id` int(10) unsigned DEFAULT NULL AFTER `amount`;',
|
||||
)
|
||||
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