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 では次のテーブルが追加されます:

  • command_history: コマンド履歴を格納します。列 `id`(主キー)、`command`(コマンドのテキスト)、および `timestamp`(コマンド実行の日時)を持ちます。

その他のテーブルはバージョン 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_nameplayer2_nameeventlocationroundmatch_lengthmatch_dateimport_datefile_pathgame_count、および `match_hash`(重複検出用のハッシュ)を持ちます。

  • game: マッチのゲームを格納します。列 id`(主キー)、`match_id`(`match を参照する外部キー)、game_numberinitial_score_1initial_score_2winnerpoints_won、および move_count を持ちます。

  • move: ゲームの手を格納します。列 id`(主キー)、`game_id`(`game を参照する外部キー)、move_numbermove_typeposition_id`(`position を参照する外部キー)、playerdice_1dice_2checker_move、および cube_action を持ちます。

  • move_analysis: 各手の分析を格納します。列 id`(主キー)、`move_id`(`move を参照する外部キー)、analysis_typedepthequityequity_errorwin_rategammon_ratebackgammon_rateopponent_win_rateopponent_gammon_rate、および opponent_backgammon_rate を持ちます。

1.3.0 から 1.4.0 への移行は、データベースを開く際に自動的に行われます。

12.6. バージョン 1.5.0

データベースのバージョン 1.5.0 では、コレクション管理のための次のテーブルが追加されます:

  • collection: ポジションのコレクションを格納します。列 id`(主キー)、`namedescriptionsort_ordercreated_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`(主キー)、`namedatelocationsort_ordercreated_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 以降、すべてのデータベース移行はデータベースファイルを開く際に自動的に行われます。