12. 付録: データベーススキーマ
重要
データベースの移行を行う前に、必ず .db ファイルをバックアップしてください。
12.1. バージョン 1.0.0
データベースのバージョン 1.0.0 には次のテーブルが含まれます:
position: ポジションを格納します。列 `id`(主キー)と `state`(JSON 形式のポジションの状態)を持ちます。
analysis: ポジションの分析を格納します。列 id`(主キー)、`position_id`(`position を参照する外部キー)、および `data`(JSON 形式の分析データ)を持ちます。
comment: ポジションに関連付けられたコメントを格納します。列 id`(主キー)、`position_id`(`position を参照する外部キー)、および `text`(コメントのテキスト)を持ちます。
metadata: データベースのメタデータを格納します。列 `key`(主キー)と `value`(キーに関連付けられた値)を持ちます。
12.2. バージョン 1.1.0
データベースのバージョン 1.1.0 では次のテーブルが追加されます:
その他のテーブルはバージョン 1.0.0 から変更されていません。
データベースをバージョン 1.0.0 からバージョン 1.1.0 に移行するには、blunderDB で migrate_from_1_0_to_1_1 コマンドを実行してください。
12.3. バージョン 1.2.0
データベースのバージョン 1.2.0 では次のテーブルが追加されます:
filter_library: 検索フィルターを格納します。列 `id`(主キー)、`name`(フィルター名)、`command`(フィルターに関連付けられたコマンド)、および `edit_position`(フィルター保存時に編集されたポジション)を持ちます。
その他のテーブルはバージョン 1.1.0 から変更されていません。
データベースをバージョン 1.1.0 からバージョン 1.2.0 に移行するには、blunderDB で migrate_from_1_1_to_1_2 コマンドを実行してください。
12.4. バージョン 1.3.0
データベースのバージョン 1.3.0 では次のテーブルが追加されます:
search_history: ポジション検索の履歴を格納します。列 `id`(主キー)、`command`(検索コマンドのテキスト)、`position`(検索時のポジションの状態)、および `timestamp`(検索の日時)を持ちます。
その他のテーブルはバージョン 1.2.0 から変更されていません。
データベースをバージョン 1.2.0 からバージョン 1.3.0 に移行するには、blunderDB で migrate_from_1_2_to_1_3 コマンドを実行してください。
12.5. バージョン 1.4.0
データベースのバージョン 1.4.0 では、マッチ管理のための次のテーブルが追加されます:
match: インポートされたマッチを格納します。列 id`(主キー)、`player1_name、player2_name、event、location、round、match_length、match_date、import_date、file_path、game_count、および `match_hash`(重複検出用のハッシュ)を持ちます。
game: マッチのゲームを格納します。列 id`(主キー)、`match_id`(`match を参照する外部キー)、game_number、initial_score_1、initial_score_2、winner、points_won、および move_count を持ちます。
move: ゲームの手を格納します。列 id`(主キー)、`game_id`(`game を参照する外部キー)、move_number、move_type、position_id`(`position を参照する外部キー)、player、dice_1、dice_2、checker_move、および cube_action を持ちます。
move_analysis: 各手の分析を格納します。列 id`(主キー)、`move_id`(`move を参照する外部キー)、analysis_type、depth、equity、equity_error、win_rate、gammon_rate、backgammon_rate、opponent_win_rate、opponent_gammon_rate、および opponent_backgammon_rate を持ちます。
1.3.0 から 1.4.0 への移行は、データベースを開く際に自動的に行われます。
12.6. バージョン 1.5.0
データベースのバージョン 1.5.0 では、コレクション管理のための次のテーブルが追加されます:
collection: ポジションのコレクションを格納します。列 id`(主キー)、`name、description、sort_order、created_at、および updated_at を持ちます。
collection_position: ポジションをコレクションに関連付ける連結テーブルです。列 id`(主キー)、`collection_id`(`collection を参照する外部キー)、position_id`(`position を参照する外部キー)、sort_order、および added_at を持ちます。ペア (collection_id, position_id) は一意です。
1.4.0 から 1.5.0 への移行は、データベースを開く際に自動的に行われます。
12.7. バージョン 1.6.0
データベースのバージョン 1.6.0 では、トーナメント管理のための次のテーブルが追加されます:
tournament: トーナメントを格納します。列 id`(主キー)、`name、date、location、sort_order、created_at、および updated_at を持ちます。
マッチをトーナメントに割り当てるため、match テーブルに tournament_id 列(tournament を参照する外部キー)を追加しました。
1.5.0 から 1.6.0 への移行は、データベースを開く際に自動的に行われます。
12.8. バージョン 1.7.0
データベースのバージョン 1.7.0 では次の列が追加されます:
各マッチで最後に閲覧したポジションを記憶するため、match テーブルに last_visited_position 列を追加しました。
1.6.0 から 1.7.0 への移行は、データベースを開く際に自動的に行われます。
注釈
バージョン 0.10.0 以降、すべてのデータベース移行はデータベースファイルを開く際に自動的に行われます。