{% if group_list | length > 1 -%}

{{config | get(key="title", default="") }} テーブル定義書

{% if config.author -%} {% endif -%}
作成者 {{config.author}}作成日 {{date | date(format="%x", locale=locale)}}
{% for group in group_list -%} {% endfor -%}

モデルグループ一覧

No. モデルグループ
{{loop.index}} {{group.group_def.label | default(value=group.group_name) }}
{% if history | length > 0 -%}
{% set_global history_idx = 0 %} {% for row in history -%} {% set description = row.description | history_description( AddTable='テーブル追加 {T}
', DropTable='テーブル削除 {T}
', RenameTable='テーブル名変更 {T} ({C})
', AddColumn='カラム追加 {T} ({C})
', ChangeColumn='カラム変更 {T} ({C})
', DropColumn='カラム削除 {T} ({C})
', RenameColumn='カラム名変更 {T} ({C})
', ChangePrimary='主キー変更 {T}
', DropPrimary='主キー削除 {T}
', AddIndex='インデックス追加 {T} ({C})
', ChangeIndex='インデックス変更 {T} ({C})
', DropIndex='インデックス削除 {T} ({C})
', AddForeign='外部キー追加 {T} ({C})
', ChangeForeign='外部キー変更 {T} ({C})
', DropForeign='外部キー削除 {T} ({C})
', ) -%} {% if description | length == 0 %}{% continue %}{% endif -%} {% set_global history_idx = history_idx + 1 %} {% if history_idx == history_max %}{% break %}{% endif -%} {% endfor -%}

更新履歴

更新日 変更内容
{{row.date | date(format="%x", locale=locale)}} {{- description | safe -}}
{% endif -%}
{%- endif -%} {% for group in group_list -%}
{% if group_list | length == 1 -%}

{{config | get(key="title", default="") }} テーブル定義書

{% if config.groups | length > 1 -%} {% endif -%} {% if config.author -%} {% endif -%}
モデルグループ {{group.group_def.label | default(value=group.group_name) }}作成者 {{config.author}}作成日 {{date | date(format="%x", locale=locale)}}
{% else -%}

{{group.group_def.label | default(value=group.group_name) }}

{% endif -%} {% if group.models -%}
{% for model_name, model in group.models -%} {% endfor -%}

テーブル一覧

No. テーブル名
{{loop.index}} {{model_name}} {%- if model.label %} ({{model.label}}){% endif %}
{% if group.er -%}

ER図

{{group.er | safe}}
{% endif -%}
{% endif -%}
{% if group.models -%} {% for model_name, model in group.models -%}

{{loop.index}}. {{model_name}}{% if model.label %} ({{model.label}}){% endif %}

物理テーブル名: {{model.table_name}}

{% if model.comment -%}
{{model.comment}}
{% endif -%}
{% for name, column in model.columns -%} {% endfor -%}
No. 論理名 物理名 データ型 Null 長さ 備考
{{loop.index}} {{column | get(key="label", default="")}} {{column | get(key="column_name", default=name)}} {% if column.signed %}signed {% endif %}{{column.type}} {% if not column.not_null %}Y{% endif %} {%- if column.length %}{{column.length}}{% endif %} {%- if column.precision %}{{column.precision}}{% endif %} {%- if column.scale %},{{column.scale}}{% endif %} {% if column.primary %}Y{% endif %} {%- if column.enum_values -%}

{% for enum in column.enum_values -%} {%- if enum.value is defined %} {{enum.value}}:{{enum | get(key="label", default=enum.name) }} {%- else %} {{enum.name}}{% if enum.label %}:{{enum.label}}{% endif %} {%- endif %} {%- if enum.comment %} ({{enum.comment}}){% endif %} {%- if not loop.last %}
{% endif %} {%- endfor %}

{%- endif -%} {%- if column.comment %}
{{column.comment}}
{% endif -%}

データ型に signed の指定がない場合、 double, decimal 等も含めすべての数値型は unsigned。

{% if model.indexes -%}
{% for name, index in model.indexes -%} {% endfor -%}

インデックス

No. タイプ カラム
{{loop.index}} {%- if index %}{{index | get(key="type", default="INDEX") | upper}} {%- else %}INDEX{% endif %} {%- if index and index.fields %}{% for name, field in index.fields -%} {%- if field and field.query %}({{field.query}}){% else %}{{name}}{%- if field and field.length %}({{field.length}}){% endif %}{% endif %} {%- if not loop.last %}, {% endif %} {%- endfor %}{% else %}{{name}}{% endif %}
{% endif -%} {% if model.relations -%}
{% for name, relation in model.relations -%} {% set type = relation | get(key="type") %} {% endfor -%}

リレーション

No. 名前 カラム タイプ 結合先 結合先カラム 削除時
{{loop.index}} {{relation | get(key="label", default=name)}} {%- if relation.local %}{{relation.local | join(sep=", ")}}{% else %} {%- if type == "has_many" or type == "has_one" %}
-
{% else %}{{name}}_id{% endif %} {%- endif %}
{{type | upper}} {{- relation.model | split(pat="::") | last}} {%- if relation.foreign %}{{relation.foreign | join(sep=", ")}}{% else %} {%- if type == "has_many" %}{{model_name}}_id{% else %}
-
{% endif %} {%- endif %}
{{relation | get(key="on_delete", default="")}}

カラムの - は主キー。{%- if config.ignore_foreign_key %}実際にはデータベースに外部キー制約は設定しない。{% endif -%}

{% endif -%}
{% endfor -%} {% endif -%} {% endfor -%}