The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Schema: [% schema.name %]
Database: [% schema.database %]

Foo: [% foo %]
Hello: [% hello %]

[%- FOREACH table = schema.get_tables %]
Table: [% table %]
==========================================================================

Fields
    [%- FOREACH field = table.get_fields %]
    [% field %]
        data_type:             [% field.data_type %]
        size:                  [% field.size.join(',') %]
        is_nullable:           [% field.is_nullable %]
        default_value:         [% field.default_value %]
        is_primary_key:        [% field.is_primary_key %]
        is_unique:             [% field.is_unique %]
        is_auto_increment:     [% field.is_auto_increment %]
        is_foreign_key:        [% field.is_foreign_key %]
        foreign_key_reference: [% field.foreign_key_reference.reference_table %]
        is_valid:              [% field.is_valid %]
        order:                 [% field.order %]
        table:                 [% field.table %]
    [% END %]

Indices
    [%- FOREACH index = table.get_indices %]
    [% index.name %]
        table:    [% index.table %]
        fields:   [% index.fields.join(', ') %]
        type:     [% index.type %]
        options:  [% index.options %]
        is_valid: [% index.is_valid %]
    [% END %]

Constraints
    [%- FOREACH constraint = table.get_constraints %]
    [% constraint.name OR "?" %]
        type:             [% constraint.type %]
        fields:           [% constraint.fields.join(', ') %]
        expression:       [% constraint.expression %]
        match_type:       [% constraint.match_type %]
        reference_fields: [% constraint.reference_fields.join(', ') %]
        reference_table:  [% constraint.reference_table.join(', ') %]
        deferrable:       [% constraint.deferrable %]
        on_delete:        [% constraint.on_delete %]
        on_update:        [% constraint.on_update %]
        options:          [% constraint.options %]
        is_valid:         [% constraint.is_valid %]
    [% END -%]
[% END %]