Skip to content

サイト設定の変遷 ​

第3版作成 最終更新 (日本時間)
確認バージョン1.5.8.1

サイトの設定は JSON として Sites テーブルの SiteSettings 列に格納されています。互換性のない変更が入るたびに Version が上がり、古い設定は読み込み時に自動でマイグレーションされます。このページでは、その仕組みと、Version ごとに変わったプロパティの一覧をまとめます。構築時期が古い環境で API から SiteSettings を扱うときなど、現行(1.017)以外のバージョンのプロパティを読み替える際に参照してください。

仕組み ​

  • 設定を保持しているモデルは SiteSettings.cs です。これが JSON にシリアライズされて Sites.SiteSettings に格納されます。
  • 重要なのは Version プロパティ です。前方互換性のないプロパティ変更が行われると、この値がインクリメントされます。
  • 古いバージョンの SiteSettings が読み込まれると、SiteSettingsMigrator.cs によってマイグレーションされます。
  • プロパティは原則として追加のみで、リネームや削除はできるだけ行わない方針です。

ダウングレードはできない

マイグレーションはバージョンアップ方向にしか定義されていないため、SiteSettings のバージョンを後方へダウングレードすることはできません。

なお、単にプロパティが追加されただけの場合は、JSON からモデルへのデシリアライズ時に未知のプロパティが読み飛ばされるので、バージョンダウンへの影響はありません(データベース構造の変更を伴う場合は、別の部分で問題が出ることがあります)。

現行バージョン ​

現行の Version は 1.017 で、本体バージョン 1.2.20.0 で変更されたものです。GitHub の公式リポジトリでは Enterprise Edition 導入のタイミングで過去のコミットが一括削除されているため、それ以前の変遷は完全には追えません。

バージョン別の変更一覧 ​

Version種別変更前変更後・内容
1.001追加—Version(decimal 型)、Migrated(NonSerialized)を追加。OnDeserialized でマイグレーション処理を呼び出す
1.002リネームColumn.GridDateTimeColumn.GridFormat
1.002リネームColumn.ControlDateTimeColumn.EditorFormat
1.003構造変更LinkColumnSiteIdHash(Dictionary)LinkCollection(List<Link>)
1.004リネームGridColumnsOrderGridColumns
1.004リネームFilterColumnsOrderFilterColumns
1.004リネームEditorColumnsOrderEditorColumns
1.004リネームTitleColumnsOrderTitleColumns
1.004リネームLinkColumnsOrderLinkColumns
1.004リネームHistoryColumnsOrderHistoryColumns
1.005構造変更FormulaHash(Dictionary<string, Formula>)Formulas(SettingList<FormulaSet>)
1.006リネームColumn.ControlFormatColumn.EditorFormat
1.007リネームColumnCollectionColumns
1.007リネームAggregationCollectionAggregations
1.007リネームLinkCollectionLinks
1.007リネームSummaryCollectionSummaries
1.008追加—Notifications の各項目に Id を追加(インデックス 1 始まりを Id として設定)
1.009リネームView.KambanGroupByView.KambanGroupByX
1.010変更—EditorColumns に "Comments" を追加(未設定の場合)
1.011追加—ViewLatestId を追加。既存の Views の最大 Id を計算して設定
1.012構造変更NewStyle / EditStyle / GridStyleStyles(SettingList<Style>)。それぞれ New = true / Edit = true / Index = true として追加
1.012構造変更NewScript / EditScript / GridScriptScripts(SettingList<Script>)
1.013リネームView.CalendarColumnView.CalendarFromTo
1.014リネームColumnAccessControl.AllowedUsersColumnAccessControl.RecordUsers(CreateColumnAccessControls / ReadColumnAccessControls / UpdateColumnAccessControls が対象)
1.015変更Export.JoinExportColumn.ColumnName に統合。ExportColumn.SiteId と Export.Join は null に設定
1.016構造変更EditInDialog = true(bool?)GridEditorType = GridEditorTypes.Dialog
1.017構造変更EditorColumns(List<string>)EditorColumnHash(Dictionary<string, List<string>>)。カラムのセクション情報を Sections に追加し、Column.Section は null に設定。タブ・セクション機能のため Sections、SectionLatestId を追加

関連ページ ​

変更履歴

第3版「機能の仕様と使いこなし」を 1.5.8.1 のソースで検証して修正
第2版記事のファイル名に並び順の番号を付け、元記事リンクを frontmatter の sources に移行
第1版「機能の仕様と使いこなし」セクションの記事を追加