mirror of
https://github.com/hydralauncher/hydra.git
synced 2025-03-09 15:40:26 +00:00
58 lines
2.5 KiB
TypeScript
58 lines
2.5 KiB
TypeScript
import type { HydraMigration } from "@main/knex-client";
|
|
import type { Knex } from "knex";
|
|
|
|
export const RepackUris: HydraMigration = {
|
|
name: "RepackUris",
|
|
up: async (knex: Knex) => {
|
|
await knex.schema.createTable("temporary_repack", (table) => {
|
|
const timestamp = new Date().getTime();
|
|
table.increments("id").primary();
|
|
table
|
|
.text("title")
|
|
.notNullable()
|
|
.unique({ indexName: "repack_title_unique_" + timestamp });
|
|
table
|
|
.text("magnet")
|
|
.notNullable()
|
|
.unique({ indexName: "repack_magnet_unique_" + timestamp });
|
|
table.text("repacker").notNullable();
|
|
table.text("fileSize").notNullable();
|
|
table.datetime("uploadDate").notNullable();
|
|
table.datetime("createdAt").notNullable().defaultTo(knex.fn.now());
|
|
table.datetime("updatedAt").notNullable().defaultTo(knex.fn.now());
|
|
table
|
|
.integer("downloadSourceId")
|
|
.references("download_source.id")
|
|
.onDelete("CASCADE");
|
|
table.text("uris").notNullable().defaultTo("[]");
|
|
});
|
|
await knex.raw(
|
|
`INSERT INTO "temporary_repack"("id", "title", "magnet", "repacker", "fileSize", "uploadDate", "createdAt", "updatedAt", "downloadSourceId") SELECT "id", "title", "magnet", "repacker", "fileSize", "uploadDate", "createdAt", "updatedAt", "downloadSourceId" FROM "repack"`
|
|
);
|
|
await knex.schema.dropTable("repack");
|
|
await knex.schema.renameTable("temporary_repack", "repack");
|
|
},
|
|
|
|
down: async (knex: Knex) => {
|
|
await knex.schema.renameTable("repack", "temporary_repack");
|
|
await knex.schema.createTable("repack", (table) => {
|
|
table.increments("id").primary();
|
|
table.text("title").notNullable().unique();
|
|
table.text("magnet").notNullable().unique();
|
|
table.integer("page");
|
|
table.text("repacker").notNullable();
|
|
table.text("fileSize").notNullable();
|
|
table.datetime("uploadDate").notNullable();
|
|
table.datetime("createdAt").notNullable().defaultTo(knex.fn.now());
|
|
table.datetime("updatedAt").notNullable().defaultTo(knex.fn.now());
|
|
table
|
|
.integer("downloadSourceId")
|
|
.references("download_source.id")
|
|
.onDelete("CASCADE");
|
|
});
|
|
await knex.raw(
|
|
`INSERT INTO "repack"("id", "title", "magnet", "repacker", "fileSize", "uploadDate", "createdAt", "updatedAt", "downloadSourceId") SELECT "id", "title", "magnet", "repacker", "fileSize", "uploadDate", "createdAt", "updatedAt", "downloadSourceId" FROM "temporary_repack"`
|
|
);
|
|
await knex.schema.dropTable("temporary_repack");
|
|
},
|
|
};
|