mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-05-10 12:25:02 +00:00
counters: move triggers to counters plugin; architectural tweaks
This commit is contained in:
parent
7f75d6d8d3
commit
ab8ea2e7e5
17 changed files with 357 additions and 200 deletions
|
@ -0,0 +1,90 @@
|
|||
import { MigrationInterface, QueryRunner, TableColumn, TableIndex } from "typeorm";
|
||||
import { TableForeignKey } from "typeorm/index";
|
||||
|
||||
export class UpdateCounterTriggers1617363975046 implements MigrationInterface {
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
// Since we're adding a non-nullable unique name column and existing triggers won't have that, clear the table first
|
||||
await queryRunner.query("DELETE FROM counter_triggers");
|
||||
|
||||
await queryRunner.addColumns("counter_triggers", [
|
||||
new TableColumn({
|
||||
name: "name",
|
||||
type: "varchar",
|
||||
length: "255",
|
||||
}),
|
||||
|
||||
new TableColumn({
|
||||
name: "reverse_comparison_op",
|
||||
type: "varchar",
|
||||
length: "16",
|
||||
}),
|
||||
|
||||
new TableColumn({
|
||||
name: "reverse_comparison_value",
|
||||
type: "int",
|
||||
}),
|
||||
]);
|
||||
|
||||
// Drop foreign key for counter_id -- needed to be able to drop the following unique index
|
||||
await queryRunner.dropForeignKey("counter_triggers", "FK_6bb47849ec95c87e58c5d3e6ae1");
|
||||
|
||||
// Index for ["counter_id", "comparison_op", "comparison_value"]
|
||||
await queryRunner.dropIndex("counter_triggers", "IDX_ddc8a6701f1234b926d35aebf3");
|
||||
|
||||
await queryRunner.createIndex(
|
||||
"counter_triggers",
|
||||
new TableIndex({
|
||||
columnNames: ["counter_id", "name"],
|
||||
isUnique: true,
|
||||
}),
|
||||
);
|
||||
|
||||
// Recreate foreign key for counter_id
|
||||
await queryRunner.createForeignKey(
|
||||
"counter_triggers",
|
||||
new TableForeignKey({
|
||||
columnNames: ["counter_id"],
|
||||
referencedTableName: "counters",
|
||||
referencedColumnNames: ["id"],
|
||||
onDelete: "CASCADE",
|
||||
onUpdate: "CASCADE",
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
// Since we're going back to unique comparison op and comparison value in this reverse-migration,
|
||||
// clear table contents first so we don't run into any conflicts with triggers with different names but identical comparison op and comparison value
|
||||
await queryRunner.query("DELETE FROM counter_triggers");
|
||||
|
||||
// Drop foreign key for counter_id -- needed to be able to drop the following unique index
|
||||
await queryRunner.dropForeignKey("counter_triggers", "FK_6bb47849ec95c87e58c5d3e6ae1");
|
||||
|
||||
// Index for ["counter_id", "name"]
|
||||
await queryRunner.dropIndex("counter_triggers", "IDX_2ec128e1d74bedd0288b60cdd1");
|
||||
|
||||
await queryRunner.createIndex(
|
||||
"counter_triggers",
|
||||
new TableIndex({
|
||||
columnNames: ["counter_id", "comparison_op", "comparison_value"],
|
||||
isUnique: true,
|
||||
}),
|
||||
);
|
||||
|
||||
// Recreate foreign key for counter_id
|
||||
await queryRunner.createForeignKey(
|
||||
"counter_triggers",
|
||||
new TableForeignKey({
|
||||
columnNames: ["counter_id"],
|
||||
referencedTableName: "counters",
|
||||
referencedColumnNames: ["id"],
|
||||
onDelete: "CASCADE",
|
||||
onUpdate: "CASCADE",
|
||||
}),
|
||||
);
|
||||
|
||||
await queryRunner.dropColumn("counter_triggers", "reverse_comparison_value");
|
||||
await queryRunner.dropColumn("counter_triggers", "reverse_comparison_op");
|
||||
await queryRunner.dropColumn("counter_triggers", "name");
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue