## 概要 [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
50 lines
2.9 KiB
SQL
50 lines
2.9 KiB
SQL
-- +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`; |