mirror of
https://github.com/geekgeekrun/geekgeekrun.git
synced 2026-09-09 01:17:06 +08:00
add job source column migration for db
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
import { JobSource } from "../enums";
|
||||||
import { requireTypeorm } from "../utils/module-loader";
|
import { requireTypeorm } from "../utils/module-loader";
|
||||||
const { Entity, Column, PrimaryGeneratedColumn } = requireTypeorm()
|
const { Entity, Column, PrimaryGeneratedColumn } = requireTypeorm()
|
||||||
|
|
||||||
@@ -29,4 +30,9 @@ export class ChatStartupLog {
|
|||||||
nullable: true
|
nullable: true
|
||||||
})
|
})
|
||||||
autoStartupChatRecordId?: number;
|
autoStartupChatRecordId?: number;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true
|
||||||
|
})
|
||||||
|
jobSource?: JobSource;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { MarkAsNotSuitOp, MarkAsNotSuitReason } from "../enums";
|
import { JobSource, MarkAsNotSuitOp, MarkAsNotSuitReason } from "../enums";
|
||||||
import { requireTypeorm } from "../utils/module-loader";
|
import { requireTypeorm } from "../utils/module-loader";
|
||||||
import { ChatStartupFrom } from "./ChatStartupLog";
|
import { ChatStartupFrom } from "./ChatStartupLog";
|
||||||
const { Entity, Column, PrimaryGeneratedColumn } = requireTypeorm()
|
const { Entity, Column, PrimaryGeneratedColumn } = requireTypeorm()
|
||||||
@@ -41,4 +41,9 @@ export class MarkAsNotSuitLog {
|
|||||||
nullable: true
|
nullable: true
|
||||||
})
|
})
|
||||||
autoStartupChatRecordId?: number;
|
autoStartupChatRecordId?: number;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true
|
||||||
|
})
|
||||||
|
jobSource?: JobSource;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,3 +28,9 @@ export enum JobDetailRegExpMatchLogic {
|
|||||||
EVERY = 1,
|
EVERY = 1,
|
||||||
SOME = 2,
|
SOME = 2,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export enum JobSource {
|
||||||
|
expect = 1,
|
||||||
|
recommend = 2,
|
||||||
|
search = 3,
|
||||||
|
}
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ import { UpdateBossInfoTable1732032381304 } from "./migrations/1732032381304-Upd
|
|||||||
import { MarkAsNotSuitOp, MarkAsNotSuitReason } from "./enums";
|
import { MarkAsNotSuitOp, MarkAsNotSuitReason } from "./enums";
|
||||||
import { AddColumnForMarkAsNotSuitLog1746092370665 } from "./migrations/1746092370665-AddColumnForMarkAsNotSuitLog";
|
import { AddColumnForMarkAsNotSuitLog1746092370665 } from "./migrations/1746092370665-AddColumnForMarkAsNotSuitLog";
|
||||||
import { Init1000000000000 } from "./migrations/1000000000000-Init";
|
import { Init1000000000000 } from "./migrations/1000000000000-Init";
|
||||||
|
import { AddJobSourceColumnForChatStartupLogAndMarkAsNotSuitLog1752380078526 } from "./migrations/1752380078526-AddJobSourceColumnForChatStartupLogAndMarkAsNotSuitLog";
|
||||||
|
|
||||||
export function initDb(dbFilePath) {
|
export function initDb(dbFilePath) {
|
||||||
const { DataSource } = requireTypeorm()
|
const { DataSource } = requireTypeorm()
|
||||||
@@ -72,6 +73,7 @@ export function initDb(dbFilePath) {
|
|||||||
UpdateChatStartupLogTable1729182577167,
|
UpdateChatStartupLogTable1729182577167,
|
||||||
UpdateBossInfoTable1732032381304,
|
UpdateBossInfoTable1732032381304,
|
||||||
AddColumnForMarkAsNotSuitLog1746092370665,
|
AddColumnForMarkAsNotSuitLog1746092370665,
|
||||||
|
AddJobSourceColumnForChatStartupLogAndMarkAsNotSuitLog1752380078526
|
||||||
],
|
],
|
||||||
migrationsRun: true
|
migrationsRun: true
|
||||||
});
|
});
|
||||||
|
|||||||
+64
@@ -0,0 +1,64 @@
|
|||||||
|
import { DataSource, MigrationInterface, QueryRunner, TableColumn } from "typeorm"
|
||||||
|
import { VBossLibrary } from "../entity/VBossLibrary";
|
||||||
|
import { VChatStartupLog } from "../entity/VChatStartupLog";
|
||||||
|
import { VCompanyLibrary } from "../entity/VCompanyLibrary";
|
||||||
|
import { VJobLibrary } from "../entity/VJobLibrary";
|
||||||
|
import { VMarkAsNotSuitLog } from "../entity/VMarkAsNotSuitLog";
|
||||||
|
import { JobSource } from "../enums";
|
||||||
|
|
||||||
|
const ViewEntities = [
|
||||||
|
VBossLibrary,
|
||||||
|
VChatStartupLog,
|
||||||
|
VCompanyLibrary,
|
||||||
|
VJobLibrary,
|
||||||
|
VMarkAsNotSuitLog,
|
||||||
|
]
|
||||||
|
export class AddJobSourceColumnForChatStartupLogAndMarkAsNotSuitLog1752380078526 implements MigrationInterface {
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
for (const EntityDefinition of ViewEntities) {
|
||||||
|
const dataSource = queryRunner.connection as DataSource;
|
||||||
|
const viewMetadata = dataSource.getMetadata(EntityDefinition);
|
||||||
|
await queryRunner.query(`DROP VIEW IF EXISTS "${viewMetadata.tableName}"`);
|
||||||
|
}
|
||||||
|
if (await queryRunner.hasTable("mark_as_not_suit_log")) {
|
||||||
|
if (!await queryRunner.hasColumn("mark_as_not_suit_log", "jobSource")) {
|
||||||
|
await queryRunner.addColumn(
|
||||||
|
"mark_as_not_suit_log",
|
||||||
|
new TableColumn({
|
||||||
|
name: "jobSource",
|
||||||
|
type: "number",
|
||||||
|
isNullable: true,
|
||||||
|
})
|
||||||
|
);
|
||||||
|
await queryRunner.query(`UPDATE mark_as_not_suit_log SET jobSource=?`, [JobSource.expect]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (await queryRunner.hasTable("chat_startup_log")) {
|
||||||
|
if (!await queryRunner.hasColumn("chat_startup_log", "jobSource")) {
|
||||||
|
await queryRunner.addColumn(
|
||||||
|
"chat_startup_log",
|
||||||
|
new TableColumn({
|
||||||
|
name: "jobSource",
|
||||||
|
type: "number",
|
||||||
|
isNullable: true,
|
||||||
|
})
|
||||||
|
);
|
||||||
|
await queryRunner.query(`UPDATE chat_startup_log SET jobSource=?`, [JobSource.expect]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (const EntityDefinition of ViewEntities) {
|
||||||
|
const dataSource = queryRunner.connection as DataSource;
|
||||||
|
const viewMetadata = dataSource.getMetadata(EntityDefinition);
|
||||||
|
let expression = viewMetadata.expression;
|
||||||
|
if (typeof expression === 'function') {
|
||||||
|
expression = expression(dataSource).getQuery();
|
||||||
|
}
|
||||||
|
await queryRunner.query(`CREATE VIEW "${viewMetadata.tableName}" AS ${expression}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user