Merged PR 118: DBマイグレーション

## 概要
[Task1713: DBマイグレーション](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/1713)
[Task1711: [タスク追加PBIでまとめて対応] Userテーブルのaccepted_terms_versionのNOT NULL制約を削除する](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_workitems/edit/1711)

- タスク追加で必要となるテーブル作成するマイグレーションファイルを追加
  - 音声ファイル
  - 文字起こしタスク
  - オプションアイテム(音声ファイルメタデータ)
- Userテーブルの「同意済み利用規約バージョン」カラムのNOT NULL制約を外すマイグレーションファイルを追加

## レビューポイント
- タスク追加で必要となるテーブルを1ファイルにまとめているが問題ないか
- 各テーブルのカラム名、型は適切か

## UIの変更
- 無し

## 動作確認状況
- ローカルで確認
  - UP/DOWN
This commit is contained in:
makabe.t 2023-05-26 06:23:41 +00:00
parent 75dc79c5e7
commit a430bd01e5
2 changed files with 55 additions and 0 deletions

View File

@ -0,0 +1,50 @@
-- +migrate Up
-- 音声ファイルテーブル
CREATE TABLE IF NOT EXISTS `audio_files` (
`id` BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY COMMENT '音声ファイルID',
`account_id` BIGINT UNSIGNED NOT NULL COMMENT 'アカウントID',
`owner_user_id` BIGINT UNSIGNED NOT NULL COMMENT '所有者ユーザーID',
`url` VARCHAR(2048) NOT NULL COMMENT 'URL',
`file_name` VARCHAR(1024) NOT NULL COMMENT 'ファイル名',
`author_id` VARCHAR(255) NOT NULL COMMENT 'AuthorID',
`work_type_id` VARCHAR(255) NOT NULL COMMENT 'WorkTypeID',
`started_at` TIMESTAMP(3) NOT NULL COMMENT '録音開始日時',
`duration` VARCHAR(255) NOT NULL COMMENT '録音時間',
`finished_at` TIMESTAMP(3) NOT NULL COMMENT '録音終了日時',
`uploaded_at` TIMESTAMP(3) NOT NULL COMMENT 'アップロード日時',
`file_size` INT NOT NULL COMMENT 'ファイルサイズByte',
`priority` VARCHAR(10) NOT NULL COMMENT '優先度',
`audio_format` VARCHAR(255) NOT NULL COMMENT '音声フォーマット',
`comment` VARCHAR(255) COMMENT 'コメント',
`deleted_at` TIMESTAMP(3) COMMENT '削除日時',
`is_encrypted` BOOLEAN NOT NULL COMMENT '暗号化されているか'
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
-- 文字起こしタスクテーブル
CREATE TABLE IF NOT EXISTS `tasks` (
`id` BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY COMMENT 'タスクID',
`job_number` VARCHAR(10) NOT NULL COMMENT 'JOBナンバー',
`account_id` BIGINT UNSIGNED NOT NULL COMMENT 'タスクに紐づいたアカウントID',
`is_job_number_enabled` BOOLEAN COMMENT 'このタスクのJOBナンバーは現在有効か',
`audio_file_id` BIGINT UNSIGNED NOT NULL COMMENT '音声ファイルID',
`status` VARCHAR(16) NOT NULL COMMENT 'ステータス',
`typist_user_id` BIGINT UNSIGNED COMMENT '割り当てユーザ',
`priority` VARCHAR(10) NOT NULL COMMENT '優先度',
`template_file_id` BIGINT UNSIGNED COMMENT '文字起こしテンプレートファイルID',
`started_at` TIMESTAMP(3) COMMENT '文字起こし開始日時',
`finished_at` TIMESTAMP(3) COMMENT '文字起こし終了日時',
UNIQUE job_number_index (job_number, account_id, is_job_number_enabled)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
-- オプションアイテム(音声ファイルメタデータ)テーブル
CREATE TABLE IF NOT EXISTS `audio_option_items` (
`id` BIGINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY COMMENT 'オプションアイテムID',
`audio_file_id` BIGINT UNSIGNED NOT NULL COMMENT '音声ファイルID',
`label` VARCHAR(255) NOT NULL COMMENT 'オプションアイテムラベル',
`value` VARCHAR(255) NOT NULL COMMENT 'オプションアイテム値'
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
-- +migrate Down
DROP TABLE `audio_files`;
DROP TABLE `tasks`;
DROP TABLE `audio_option_items`;

View File

@ -0,0 +1,5 @@
-- +migrate Up
ALTER TABLE `users` MODIFY COLUMN `accepted_terms_version` VARCHAR(255) COMMENT '同意済み利用規約バージョン';
-- +migrate Down
ALTER TABLE `users` MODIFY COLUMN `accepted_terms_version` VARCHAR(255) NOT NULL COMMENT '同意済み利用規約バージョン';