documentDefinitionMap

documentDefinitionMapとは?

あらかじめ取得したスキーマのメタ情報を元に、ドキュメント生成を実行する際の設定を行うDBFluteプロパティ。DBFluteクライアントの dfprop 配下の documentDefinitionMap.dfprop という名前のテキストファイルです。主に Docタスク を実行する際に参照され、このプロパティの設定を行うことで、以下のドキュメントの生成を調整することができます。

プロパティ

map型プロパティ で、様々な key-value 形式のプロパティを定義します。

必須のプロパティはありません。

documentOutputDirectory

Docタスクで自動生成する SchemaHTML、HistoryHTML などドキュメント類の出力先ディレクトリを指定します。

基本的には、利用する必要はありません。どの(DBFlute)プロジェクトに行っても、同じところにドキュメントが置いてあるというのは価値のあることです。 構造的にどうしても必要になったときに利用するようにして下さい(例えば、ApplicationBehaviorの利用時など)。

値候補
DBFluteクライアントディレクトリからの相対パス
デフォルト
./output/doc

aliasDelimiterInDbComment

DBに定義したコメント(DBコメント)を、カラムの別名: カラムの説明 というように扱うための区切り文字を指定します。(ドキュメント上の説明として区切り文字 ":" を利用)

カラムの別名は、通常DB定義として専用の領域を設けられていませんので、DBFluteではDBコメントにそれら情報を忍び込ませる ことで SchemaHTML や JavaDoc 上でカラムの別名を取り扱うことが可能になります。主にローカル言語での名前(和名など)での表現がある場合に有効です。

値候補
一文字もしくは二文字程度の任意の区切り文字
デフォルト
なし (別名を扱わない)
補足
  • 別名だけ定義して説明がない場合はDBコメントには "別名:" と定義
  • 別名無しで説明だけの場合はDBコメントには区切り文字なしで説明だけを定義
  • 習慣として ":" コロンがお奨め
  • HTMLやJavaDoc上に適さない表現(文字列)が含まれているものは不可

isDbCommentOnAliasBasis

DBコメントが別名基準で利用されているか否かを指定します。@since 0.9.8.2

このプロパティは、aliasDelimiterInDbComment と同時に利用されます。 DBコメントに別名デリミタが存在しない場合はデフォルトではそのDBコメントは説明として扱われますが、 別名として扱いたい場合にこのプロパティを利用します。

説明が存在する場合のみ区切り文字と説明が別名の後ろに付与される、というような場合に有効です。 DDLを自動生成するツールとの兼ね合いで調整すると良いでしょう。

値候補
true or false
デフォルト
false (デリミタがない場合は説明)
補足
  • aliasDelimiterInDbComment と一緒に利用することが前提

isEntityJavaDocDbCommentValid

DBに定義したコメントをJavaDocコメントに生成するか指定します。

値候補
true or false
デフォルト
true @since 1.0.4D
補足
  • DBコメントがJavaDocの表示に適さない場合を考慮してデフォルトは "false"
  • JavaDoc上に適さない表現(文字列)が含まれているものは不可

isEntityDBMetaDbCommentValid

DBに定義したコメントを(自動生成される)DBMetaに反映するか指定します。

テーブルのコメントは DBMeta.getTableComment()、カラムのコメントは ColumnInfo.getColumnComment() より取得できるようになります。このプロパティを有効にしない場合は、これらメソッドは null を戻します。

値候補
true or false
デフォルト
false (DBMetaには反映しない)
補足
  • DBコメントがプログラム上の文字列リテラルに適さない場合を考慮してデフォルトは "false"
  • プログラム上の文字列リテラルに適さない表現(文字列)が含まれているものは不可

schemaHtmlFileName

SchemaHTMLのHTMLファイル名を指定します。

基本的には、利用する必要はありません。どの(DBFlute)プロジェクトに行っても、同じ(規則の)名前であるというのは価値のあることです。 構造的にどうしても必要になったときに利用するようにして下さい(例えば、ApplicationBehaviorの利用時など)。

値候補
HTMLのファイル名
デフォルト
schema-[project-name].html
  • ".html" で終わる名前であること
  • パス表現は利用できない (出力先変更は別のプロパティ)

isSuppressSchemaHtmlOutsideSql

SchemaHTMLで、外だしSQLの情報(リスト)の出力を抑制するかどうか指定します。

基本的には、利用する必要はありません。外だしSQLの情報(リスト)はディベロッパーにとってとてもありがたいものです。 SchemaHTMLをフォーマルなテーブル定義書として納品をするような場合で、外だしSQLの情報がない純粋なテーブル定義だけのドキュメントにしたいときに利用します。

値候補
true or false
デフォルト
false *外だしSQLの情報を出力する

historyHtmlFileName

HistoryHTMLのHTMLファイル名を指定します。

基本的には、利用する必要はありません。どの(DBFlute)プロジェクトに行っても、同じ(規則の)名前であるというのは価値のあることです。 構造的にどうしても必要になったときに利用するようにして下さい(例えば、ApplicationBehaviorの利用時など)。

値候補
HTMLのファイル名
デフォルト
history-[project-name].html
  • ".html" で終わる名前であること
  • パス表現は利用できない (出力先変更は別のプロパティ)

isCheckColumnDefOrderDiff @since 0.9.9.0D

HistoryHTMLの差分判定で、カラム定義順の差異もチェックするかどうか指定します。 これは、SchemaSyncCheck や AlterCheck などにも影響します。@since 0.9.9.0D

値候補
true or false
デフォルト
false

isCheckDbCommentDiff @since 0.9.9.0D

HistoryHTMLの差分判定で、テーブルやカラムのDBコメントもチェックするかどうか指定します。 これは、SchemaSyncCheck や AlterCheck などにも影響します。@since 0.9.9.0D

値候補
true or false
デフォルト
false

コメント文字列の両端にトリムされる値がある場合は、HistoryHTMLではクォートされて表示されます。@since 0.9.9.1C

isCheckProcedureDiff @since 0.9.9.7F

HistoryHTMLの差分判定で、プロシージャもチェックするかどうか指定します。 これは、SchemaSyncCheck や AlterCheck などにも影響します。@since 0.9.9.7F

値候補
true or false
デフォルト
false

loadDataReverseMap @since 1.0.4B

LoadDataReverse の生成に関するプロパティを指定します。 @since 0.9.8.4

map の中の recordList を指定すると LoadDataReverse が有効になります。 値がマイナスの場合は無制限でデータが出力されます。その他、微調整するプロパティがあります。

isReplaceSchemaDirectUse
ReplaceSchemaで直接利用 (playsqlへ直接出力)
isOverrideExistingDataFile
既存のエクセルファイルに上書き出力
isSynchronizeOriginDate
DateAdjustmentの基準日を同期
xlsLimit (@since 0.9.9.1A)
エクセル出力のリミット、超えるとTSV出力
e.g. loadDataReverseMapの仕様 @documentDefinitionMap.dfprop
; loadDataReverseMap = map:{
    ; recordLimit = [limit size] # デフォルト: 設定なし
    ; isReplaceSchemaDirectUse = [true or false] # デフォルト: false
    ; isOverrideExistingDataFile = [true or false] # デフォルト: false
    ; isSynchronizeOriginDate = [true or false] # デフォルト: false
    ; xlsLimit = [limit size] # デフォルト: 65000
}
値候補
list型プロパティの中に、map型プロパティの key-value
デフォルト
なし
補足
  • recordLimit がマイナスの場合は、無制限でデータが出力される
  • isReplaceSchemaDirectUse が true の場合は playsql 配下に直接出力される
  • 全てをTSV出力にしたい場合は、xlsLimitを 0 にすることで実現できる

loadDataReverseMap @until 1.0.4A

※こちらは、1.0.4A以前の loadDataReverseMap についてのドキュメントです。

LoadDataReverse の生成に関するプロパティを指定します。@since 0.9.8.4

map の中の recordList を指定すると LoadDataReverse が有効になります。 値がマイナスの場合は無制限でデータが出力されます。

出力データに共通カラムを含める場合は isContainsCommonColumn (@until 1.0.4A) を true に、ReplaceSchema でそのまま利用するのであれば、isOutputToPlaySql (@until 1.0.4A) を true に。

e.g. loadDataReverseMapの仕様 @documentDefinitionMap.dfprop
; loadDataReverseMap = map:{
    ; recordLimit = [limit size] # デフォルト: 設定なし
    ; isContainsCommonColumn = [true or false] # デフォルト: false
    ; isOutputToPlaySql = [true or false] # デフォルト: false
    ; xlsLimit = [limit size] # デフォルト: 65000
}
値候補
list型プロパティの中に、map型プロパティの key-value
デフォルト
なし
補足
  • recordLimit がマイナスの場合は、無制限でデータが出力される
  • isOutputToPlaySql が true の場合は playsql 配下に直接出力される
  • xlsLimit を超える行数(エクセルの限界)のデータはTSV形式で出力される

TSV出力にスイッチする基準のレコード件数は、xlsLimit にて指定できる(@since 0.9.9.1A)。 もし、全てをTSV出力にしたい場合は、この値を 0 にすることで実現できる。

schemaSyncCheckMap

SchemaSyncCheck の生成に関するプロパティを指定します。 @since 0.9.8.4

map の中の user を指定すると SchemaSyncCheck が有効になります。 もちろん、その状況で必須の他の情報もしっかり設定する必要があります。

e.g. schemaSyncCheckMapの仕様 @documentDefinitionMap.dfprop
; schemaSyncCheckMap = map:{
    ; url = [connection url] # デフォルト: databaseInfoMap.dfpropのものと同じ
    ; catalog = [catalog (database name)] # デフォルト: url から自動判別される
    ; schema = [schema] # デフォルト: 設定なし (スキーマの概念のないDBMSでは空指定)
    ; user = [user] # 必須
    ; password = [password] # デフォルト: 設定なし
}
値候補
list型プロパティの中に、map型プロパティの key-value
デフォルト
なし
補足
  • catalog は基本的に url の中から自動で判別されるため指定の必要なし

propertiesHtmlMap @since 1.0.1

PropertiesHTML の生成に関するプロパティを指定します。 @since 1.0.1

e.g. propertiesHtmlMapの仕様 @documentDefinitionMap.dfprop
; propertiesHtmlMap = map:{
    ; df:header = map:{
        ; title = [title of PropertiesHTML]
    }
    ; [request name] = map:{
        ; baseDir = [base directory for variable in dfprop]
        ; rootFile = [path to root file]
        ; environmentMap = map:{
            ; [environment name] = [path to environment directory]
        }
        ; diffIgnoredKeyList = list:{ [list of property key] }
        ; maskedKeyList = list:{ [list of property key] }
        ; isEnvOnlyFloatLeft = [true or false]
        ; extendsPropRequest = [name of other request that it extends]
        ; isCheckImplicitOverride = [true or false]
    }
    # path is relative path from dbflute client
}
値候補
list型プロパティの中に、map型プロパティの key-value
デフォルト
なし
補足
  • df:header の title を指定すると、HTML上の title を変更できる
  • baseDirで指定した文字列を、path指定の中で $$baseDir$$ という形式で参照できる

dataXlsTemplateMap @until 0.9.8.3

DataXlsTemplate の生成に関するプロパティを指定します。 (同時に DataXlsTemplate を生成するか否かの指定にもなります) @since 0.9.8.3

map の中の recordList を指定すると DataXlsTemplate が生成されます。 値がマイナスの場合は無制限でデータが出力されます。出力データに共通カラムを含める場合は isContainsCommonColumn を true に、ReplaceSchema の LoadData のリバース(LoadDataReverse)の場合は isLoadDataReverse を true に。

e.g. dataXlsTemplateMapの仕様 @documentDefinitionMap.dfprop
; dataXlsTemplateMap = map:{
    ; recordLimit = [limit size] # デフォルト: 設定なし
    ; isContainsCommonColumn = [true or false] # デフォルト: false
    ; isLoadDataReverse = [true or false] # デフォルト: false
}
値候補
list型プロパティの中に、map型プロパティの key-value
デフォルト
なし
補足
  • recordLimit がマイナスの場合は、無制限でデータが出力される
  • エクセルの最大行数(65000を決め打ち) を超えるデータはTSV形式で出力される
  • LoadDataReverse の場合は、ReplaceSchema の playsql 配下に直接出力される
  • LoadDataReverse の場合は、追加スキーマのテーブルやビューは除外される

dataXlsTemplateRecordLimit @until 0.9.8.2

DataXlsTemplate を生成する際、テーブルごとに何件まで取得するか数値で指定します。 (同時に DataXlsTemplate を生成するか否かの指定にもなります) (dataXlsTemplateMap に吸収されました)

値候補
正負の数値 (-1 から 65000)
デフォルト
なし (DataXlsTemplateを生成しない)
補足
  • "0" を指定するとデータは取得せず、テーブルごとにカラム名だけを記述したシートを生成
  • "-1" を指定すると、テーブルの全データを取得(但し、取得件数の上限は65000)
  • 取得するデータは順不同
  • 共通カラム(CommonColumn)の出力有無は別プロパティにて調整

isDataXlsTemplateContainsCommonColumn @until 0.9.8.2

DataXlsTemplateに共通カラム(CommonColumn)のカラムを含める否かを指定します。 (dataXlsTemplateMap に吸収されました)

値候補
true or false
デフォルト
false (共通カラムは出力しない)

DataXlsTemplateの役割から、デフォルトでは共通カラムは出力しません。ReplaceSchema のデータ登録では、共通カラムを自動設定する機能があり、基本的にエクセルデータには共通カラムが不要なためです。