From e54af6fd2f4a08744a0057859f8017c2238dd91c Mon Sep 17 00:00:00 2001 From: Takeshi Kimata <117462761+kimatata@users.noreply.github.com> Date: Sun, 7 Apr 2024 19:03:19 +0900 Subject: [PATCH] create run-Cases table --- .../20240407182431-create-runs-cases.js | 52 +++++++++++++++++++ backend/seeders/seed.js | 17 ++++++ 2 files changed, 69 insertions(+) create mode 100644 backend/migrations/20240407182431-create-runs-cases.js diff --git a/backend/migrations/20240407182431-create-runs-cases.js b/backend/migrations/20240407182431-create-runs-cases.js new file mode 100644 index 0000000..eeb6fa8 --- /dev/null +++ b/backend/migrations/20240407182431-create-runs-cases.js @@ -0,0 +1,52 @@ +"use strict"; + +/** @type {import('sequelize-cli').Migration} */ +module.exports = { + up: async (queryInterface, Sequelize) => { + await queryInterface.createTable("runCases", { + id: { + type: Sequelize.INTEGER, + primaryKey: true, + autoIncrement: true, + }, + runId: { + type: Sequelize.INTEGER, + references: { + model: "runs", + key: "id", + }, + onUpdate: "CASCADE", + onDelete: "CASCADE", + }, + caseId: { + type: Sequelize.INTEGER, + references: { + model: "cases", + key: "id", + }, + onUpdate: "CASCADE", + onDelete: "CASCADE", + }, + status: { + type: Sequelize.INTEGER, + allowNull: false, + }, + createdAt: { + type: Sequelize.DATE, + allowNull: false, + }, + updatedAt: { + type: Sequelize.DATE, + allowNull: false, + }, + }); + + await queryInterface.addIndex("runCases", ["runId", "caseId"], { + unique: true, + }); + }, + + down: async (queryInterface, Sequelize) => { + await queryInterface.dropTable("runCases"); + }, +}; diff --git a/backend/seeders/seed.js b/backend/seeders/seed.js index badb5ca..48115f4 100644 --- a/backend/seeders/seed.js +++ b/backend/seeders/seed.js @@ -235,6 +235,23 @@ module.exports = { updatedAt: new Date(), }, ]); + + await queryInterface.bulkInsert("runCases", [ + { + runId: 1, + caseId: 1, + status: 1, + createdAt: new Date(), + updatedAt: new Date(), + }, + { + runId: 1, + caseId: 2, + status: 1, + createdAt: new Date(), + updatedAt: new Date(), + }, + ]); }, down: async (queryInterface, Sequelize) => {