Documentation for the postgresql-schema Generator
METADATA
| Property | Value | Notes | 
|---|---|---|
| generator name | postgresql-schema | pass this to the generate command after -g | 
| generator stability | BETA | |
| generator type | SCHEMA | |
| generator language | Postgresql | |
| generator default templating engine | mustache | |
| helpTxt | Generates a PostgreSQL schema based on the schema defined in the OpenAPI specification (v2, v3) | 
CONFIG OPTIONS
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to configuration docs for more details.
| Option | Description | Values | Default | 
|---|---|---|---|
| defaultDatabaseName | Database name that will be used for all generated PostgreSQL DDL and DML statements. | ||
| idAutoIncEnabled | If true, generates autoincrement PostgreSQL types SERIAL and BIGSERIAL for int32 and int64 respectively for integer fields with name 'id'. | false | |
| identifierNamingConvention | Naming convention of PostgreSQL idebntifiers (table names and column names). | 
  | snake_case | 
| jsonDataType | Use of PostgreSQL data types for complex model properties. | 
  | json | 
| namedParametersEnabled | Generates query examples with named variables in value placeholders (eg.:name,:quantity) if true. Otherwise, generates question marks ? in value placeholders. | false | 
IMPORT MAPPING
| Type/Alias | Imports | 
|---|
INSTANTIATION TYPES
| Type/Alias | Instantiated By | 
|---|
LANGUAGE PRIMITIVES
- BigDecimal
 - ByteArray
 - Date
 - DateTime
 - URI
 - UUID
 - bool
 - boolean
 - byte
 - char
 - date
 - double
 - file
 - float
 - int
 - integer
 - long
 - mixed
 - number
 - short
 - string
 - void
 
RESERVED WORDS
- a
 - abort
 - abs
 - absent
 - absolute
 - access
 - according
 - acos
 - action
 - ada
 - add
 - admin
 - after
 - aggregate
 - all
 - allocate
 - also
 - alter
 - always
 - analyse
 - analyze
 - and
 - any
 - any_value
 - are
 - array
 - array_agg
 - array_max_cardinality
 - as
 - asc
 - asensitive
 - asin
 - assertion
 - assignment
 - asymmetric
 - at
 - atan
 - atomic
 - attach
 - attribute
 - attributes
 - authorization
 - avg
 - backward
 - base64
 - before
 - begin
 - begin_frame
 - begin_partition
 - bernoulli
 - between
 - bigint
 - binary
 - bit
 - bit_length
 - blob
 - blocked
 - bom
 - boolean
 - both
 - breadth
 - btrim
 - by
 - c
 - cache
 - call
 - called
 - cardinality
 - cascade
 - cascaded
 - case
 - cast
 - catalog
 - catalog_name
 - ceil
 - ceiling
 - chain
 - chaining
 - char
 - char_length
 - character
 - character_length
 - character_set_catalog
 - character_set_name
 - character_set_schema
 - characteristics
 - characters
 - check
 - checkpoint
 - class
 - class_origin
 - classifier
 - clob
 - close
 - cluster
 - coalesce
 - cobol
 - collate
 - collation
 - collation_catalog
 - collation_name
 - collation_schema
 - collect
 - column
 - column_name
 - columns
 - command_function
 - command_function_code
 - comment
 - comments
 - commit
 - committed
 - compression
 - concurrently
 - condition
 - condition_number
 - conditional
 - configuration
 - conflict
 - connect
 - connection
 - connection_name
 - constraint
 - constraint_catalog
 - constraint_name
 - constraint_schema
 - constraints
 - constructor
 - contains
 - content
 - continue
 - control
 - conversion
 - convert
 - copartition
 - copy
 - corr
 - corresponding
 - cos
 - cosh
 - cost
 - count
 - covar_pop
 - covar_samp
 - create
 - cross
 - csv
 - cube
 - cume_dist
 - current
 - current_catalog
 - current_date
 - current_default_transform_group
 - current_path
 - current_role
 - current_row
 - current_schema
 - current_time
 - current_timestamp
 - current_transform_group_for_type
 - current_user
 - cursor
 - cursor_name
 - cycle
 - data
 - database
 - datalink
 - date
 - datetime_interval_code
 - datetime_interval_precision
 - day
 - db
 - deallocate
 - dec
 - decfloat
 - decimal
 - declare
 - default
 - defaults
 - deferrable
 - deferred
 - define
 - defined
 - definer
 - degree
 - delete
 - delimiter
 - delimiters
 - dense_rank
 - depends
 - depth
 - deref
 - derived
 - desc
 - describe
 - descriptor
 - detach
 - deterministic
 - diagnostics
 - dictionary
 - disable
 - discard
 - disconnect
 - dispatch
 - distinct
 - dlnewcopy
 - dlpreviouscopy
 - dlurlcomplete
 - dlurlcompleteonly
 - dlurlcompletewrite
 - dlurlpath
 - dlurlpathonly
 - dlurlpathwrite
 - dlurlscheme
 - dlurlserver
 - dlvalue
 - do
 - document
 - domain
 - double
 - drop
 - dynamic
 - dynamic_function
 - dynamic_function_code
 - each
 - element
 - else
 - empty
 - enable
 - encoding
 - encrypted
 - end
 - end-exec
 - end_frame
 - end_partition
 - enforced
 - enum
 - equals
 - error
 - escape
 - event
 - every
 - except
 - exception
 - exclude
 - excluding
 - exclusive
 - exec
 - execute
 - exists
 - exp
 - explain
 - expression
 - extension
 - external
 - extract
 - false
 - family
 - fetch
 - file
 - filter
 - final
 - finalize
 - finish
 - first
 - first_value
 - flag
 - float
 - floor
 - following
 - for
 - force
 - foreign
 - format
 - fortran
 - forward
 - found
 - frame_row
 - free
 - freeze
 - from
 - fs
 - fulfill
 - full
 - function
 - functions
 - fusion
 - g
 - general
 - generated
 - get
 - global
 - go
 - goto
 - grant
 - granted
 - greatest
 - group
 - grouping
 - groups
 - handler
 - having
 - header
 - hex
 - hierarchy
 - hold
 - hour
 - id
 - identity
 - if
 - ignore
 - ilike
 - immediate
 - immediately
 - immutable
 - implementation
 - implicit
 - import
 - in
 - include
 - including
 - increment
 - indent
 - index
 - indexes
 - indicator
 - inherit
 - inherits
 - initial
 - initially
 - inline
 - inner
 - inout
 - input
 - insensitive
 - insert
 - instance
 - instantiable
 - instead
 - int
 - integer
 - integrity
 - intersect
 - intersection
 - interval
 - into
 - invoker
 - is
 - isnull
 - isolation
 - join
 - json
 - json_array
 - json_arrayagg
 - json_exists
 - json_object
 - json_objectagg
 - json_query
 - json_scalar
 - json_serialize
 - json_table
 - json_table_primitive
 - json_value
 - k
 - keep
 - key
 - key_member
 - key_type
 - keys
 - label
 - lag
 - language
 - large
 - last
 - last_value
 - lateral
 - lead
 - leading
 - leakproof
 - least
 - left
 - length
 - level
 - library
 - like
 - like_regex
 - limit
 - link
 - listagg
 - listen
 - ln
 - load
 - local
 - localtime
 - localtimestamp
 - location
 - locator
 - lock
 - locked
 - log
 - log10
 - logged
 - lower
 - lpad
 - ltrim
 - m
 - map
 - mapping
 - match
 - match_number
 - match_recognize
 - matched
 - matches
 - materialized
 - max
 - maxvalue
 - measures
 - member
 - merge
 - merge_action
 - message_length
 - message_octet_length
 - message_text
 - method
 - min
 - minute
 - minvalue
 - mod
 - mode
 - modifies
 - module
 - month
 - more
 - move
 - multiset
 - mumps
 - name
 - names
 - namespace
 - national
 - natural
 - nchar
 - nclob
 - nested
 - nesting
 - new
 - next
 - nfc
 - nfd
 - nfkc
 - nfkd
 - nil
 - no
 - none
 - normalize
 - normalized
 - not
 - nothing
 - notify
 - notnull
 - nowait
 - nth_value
 - ntile
 - null
 - null_ordering
 - nullable
 - nullif
 - nulls
 - number
 - numeric
 - object
 - occurrence
 - occurrences_regex
 - octet_length
 - octets
 - of
 - off
 - offset
 - oids
 - old
 - omit
 - on
 - one
 - only
 - open
 - operator
 - option
 - options
 - or
 - order
 - ordering
 - ordinality
 - others
 - out
 - outer
 - output
 - over
 - overflow
 - overlaps
 - overlay
 - overriding
 - owned
 - owner
 - p
 - pad
 - parallel
 - parameter
 - parameter_mode
 - parameter_name
 - parameter_ordinal_position
 - parameter_specific_catalog
 - parameter_specific_name
 - parameter_specific_schema
 - parser
 - partial
 - partition
 - pascal
 - pass
 - passing
 - passthrough
 - password
 - past
 - path
 - pattern
 - per
 - percent
 - percent_rank
 - percentile_cont
 - percentile_disc
 - period
 - permission
 - permute
 - pipe
 - placing
 - plan
 - plans
 - pli
 - policy
 - portion
 - position
 - position_regex
 - power
 - precedes
 - preceding
 - precision
 - prepare
 - prepared
 - preserve
 - prev
 - primary
 - prior
 - private
 - privileges
 - procedural
 - procedure
 - procedures
 - program
 - prune
 - ptf
 - public
 - publication
 - quote
 - quotes
 - range
 - rank
 - read
 - reads
 - real
 - reassign
 - recheck
 - recovery
 - recursive
 - ref
 - references
 - referencing
 - refresh
 - regr_avgx
 - regr_avgy
 - regr_count
 - regr_intercept
 - regr_r2
 - regr_slope
 - regr_sxx
 - regr_sxy
 - regr_syy
 - reindex
 - relative
 - release
 - rename
 - repeatable
 - replace
 - replica
 - requiring
 - reset
 - respect
 - restart
 - restore
 - restrict
 - result
 - return
 - returned_cardinality
 - returned_length
 - returned_octet_length
 - returned_sqlstate
 - returning
 - returns
 - revoke
 - right
 - role
 - rollback
 - rollup
 - routine
 - routine_catalog
 - routine_name
 - routine_schema
 - routines
 - row
 - row_count
 - row_number
 - rows
 - rpad
 - rtrim
 - rule
 - running
 - savepoint
 - scalar
 - scale
 - schema
 - schema_name
 - schemas
 - scope
 - scope_catalog
 - scope_name
 - scope_schema
 - scroll
 - search
 - second
 - section
 - security
 - seek
 - select
 - selective
 - self
 - semantics
 - sensitive
 - sequence
 - sequences
 - serializable
 - server
 - server_name
 - session
 - session_user
 - set
 - setof
 - sets
 - share
 - show
 - similar
 - simple
 - sin
 - sinh
 - size
 - skip
 - smallint
 - snapshot
 - some
 - sort_direction
 - source
 - space
 - specific
 - specific_name
 - specifictype
 - sql
 - sqlcode
 - sqlerror
 - sqlexception
 - sqlstate
 - sqlwarning
 - sqrt
 - stable
 - standalone
 - start
 - state
 - statement
 - static
 - statistics
 - stddev_pop
 - stddev_samp
 - stdin
 - stdout
 - storage
 - stored
 - strict
 - string
 - strip
 - structure
 - style
 - subclass_origin
 - submultiset
 - subscription
 - subset
 - substring
 - substring_regex
 - succeeds
 - sum
 - support
 - symmetric
 - sysid
 - system
 - system_time
 - system_user
 - t
 - table
 - table_name
 - tables
 - tablesample
 - tablespace
 - tan
 - tanh
 - target
 - temp
 - template
 - temporary
 - text
 - then
 - through
 - ties
 - time
 - timestamp
 - timezone_hour
 - timezone_minute
 - to
 - token
 - top_level_count
 - trailing
 - transaction
 - transaction_active
 - transactions_committed
 - transactions_rolled_back
 - transform
 - transforms
 - translate
 - translate_regex
 - translation
 - treat
 - trigger
 - trigger_catalog
 - trigger_name
 - trigger_schema
 - trim
 - trim_array
 - true
 - truncate
 - trusted
 - type
 - types
 - uescape
 - unbounded
 - uncommitted
 - unconditional
 - under
 - unencrypted
 - union
 - unique
 - unknown
 - unlink
 - unlisten
 - unlogged
 - unmatched
 - unnamed
 - unnest
 - until
 - untyped
 - update
 - upper
 - uri
 - usage
 - user
 - user_defined_type_catalog
 - user_defined_type_code
 - user_defined_type_name
 - user_defined_type_schema
 - using
 - utf16
 - utf32
 - utf8
 - vacuum
 - valid
 - validate
 - validator
 - value
 - value_of
 - values
 - var_pop
 - var_samp
 - varbinary
 - varchar
 - variadic
 - varying
 - verbose
 - version
 - versioning
 - view
 - views
 - volatile
 - when
 - whenever
 - where
 - whitespace
 - width_bucket
 - window
 - with
 - within
 - without
 - work
 - wrapper
 - write
 - xml
 - xmlagg
 - xmlattributes
 - xmlbinary
 - xmlcast
 - xmlcomment
 - xmlconcat
 - xmldeclaration
 - xmldocument
 - xmlelement
 - xmlexists
 - xmlforest
 - xmliterate
 - xmlnamespaces
 - xmlparse
 - xmlpi
 - xmlquery
 - xmlroot
 - xmlschema
 - xmlserialize
 - xmltable
 - xmltext
 - xmlvalidate
 - year
 - yes
 - zone
 
FEATURE SET
Client Modification Feature
| Name | Supported | Defined By | 
|---|---|---|
| BasePath | ✗ | ToolingExtension | 
| Authorizations | ✗ | ToolingExtension | 
| UserAgent | ✗ | ToolingExtension | 
| MockServer | ✗ | ToolingExtension | 
Data Type Feature
| Name | Supported | Defined By | 
|---|---|---|
| Custom | ✗ | OAS2,OAS3 | 
| Int32 | ✓ | OAS2,OAS3 | 
| Int64 | ✓ | OAS2,OAS3 | 
| Float | ✓ | OAS2,OAS3 | 
| Double | ✓ | OAS2,OAS3 | 
| Decimal | ✓ | ToolingExtension | 
| String | ✓ | OAS2,OAS3 | 
| Byte | ✓ | OAS2,OAS3 | 
| Binary | ✓ | OAS2,OAS3 | 
| Boolean | ✓ | OAS2,OAS3 | 
| Date | ✓ | OAS2,OAS3 | 
| DateTime | ✓ | OAS2,OAS3 | 
| Password | ✓ | OAS2,OAS3 | 
| File | ✓ | OAS2 | 
| Uuid | ✗ | |
| Array | ✓ | OAS2,OAS3 | 
| Null | ✗ | OAS3 | 
| AnyType | ✗ | OAS2,OAS3 | 
| Object | ✓ | OAS2,OAS3 | 
| Maps | ✓ | ToolingExtension | 
| CollectionFormat | ✓ | OAS2 | 
| CollectionFormatMulti | ✓ | OAS2 | 
| Enum | ✓ | OAS2,OAS3 | 
| ArrayOfEnum | ✓ | ToolingExtension | 
| ArrayOfModel | ✓ | ToolingExtension | 
| ArrayOfCollectionOfPrimitives | ✓ | ToolingExtension | 
| ArrayOfCollectionOfModel | ✓ | ToolingExtension | 
| ArrayOfCollectionOfEnum | ✓ | ToolingExtension | 
| MapOfEnum | ✓ | ToolingExtension | 
| MapOfModel | ✓ | ToolingExtension | 
| MapOfCollectionOfPrimitives | ✓ | ToolingExtension | 
| MapOfCollectionOfModel | ✓ | ToolingExtension | 
| MapOfCollectionOfEnum | ✓ | ToolingExtension | 
Documentation Feature
| Name | Supported | Defined By | 
|---|---|---|
| Readme | ✓ | ToolingExtension | 
| Model | ✓ | ToolingExtension | 
| Api | ✓ | ToolingExtension | 
Global Feature
| Name | Supported | Defined By | 
|---|---|---|
| Host | ✓ | OAS2,OAS3 | 
| BasePath | ✓ | OAS2,OAS3 | 
| Info | ✓ | OAS2,OAS3 | 
| Schemes | ✗ | OAS2,OAS3 | 
| PartialSchemes | ✓ | OAS2,OAS3 | 
| Consumes | ✓ | OAS2 | 
| Produces | ✓ | OAS2 | 
| ExternalDocumentation | ✓ | OAS2,OAS3 | 
| Examples | ✓ | OAS2,OAS3 | 
| XMLStructureDefinitions | ✗ | OAS2,OAS3 | 
| MultiServer | ✗ | OAS3 | 
| ParameterizedServer | ✗ | OAS3 | 
| ParameterStyling | ✗ | OAS3 | 
| Callbacks | ✗ | OAS3 | 
| LinkObjects | ✗ | OAS3 | 
Parameter Feature
| Name | Supported | Defined By | 
|---|---|---|
| Path | ✓ | OAS2,OAS3 | 
| Query | ✓ | OAS2,OAS3 | 
| Header | ✓ | OAS2,OAS3 | 
| Body | ✓ | OAS2 | 
| FormUnencoded | ✓ | OAS2 | 
| FormMultipart | ✓ | OAS2 | 
| Cookie | ✓ | OAS3 | 
Schema Support Feature
| Name | Supported | Defined By | 
|---|---|---|
| Simple | ✓ | OAS2,OAS3 | 
| Composite | ✓ | OAS2,OAS3 | 
| Polymorphism | ✗ | OAS2,OAS3 | 
| Union | ✗ | OAS3 | 
| allOf | ✗ | OAS2,OAS3 | 
| anyOf | ✗ | OAS3 | 
| oneOf | ✗ | OAS3 | 
| not | ✗ | OAS3 | 
Security Feature
| Name | Supported | Defined By | 
|---|---|---|
| BasicAuth | ✗ | OAS2,OAS3 | 
| ApiKey | ✗ | OAS2,OAS3 | 
| OpenIDConnect | ✗ | OAS3 | 
| BearerToken | ✗ | OAS3 | 
| OAuth2_Implicit | ✗ | OAS2,OAS3 | 
| OAuth2_Password | ✗ | OAS2,OAS3 | 
| OAuth2_ClientCredentials | ✗ | OAS2,OAS3 | 
| OAuth2_AuthorizationCode | ✗ | OAS2,OAS3 | 
| SignatureAuth | ✗ | OAS3 | 
| AWSV4Signature | ✗ | ToolingExtension | 
Wire Format Feature
| Name | Supported | Defined By | 
|---|---|---|
| JSON | ✗ | OAS2,OAS3 | 
| XML | ✗ | OAS2,OAS3 | 
| PROTOBUF | ✗ | ToolingExtension | 
| Custom | ✗ | OAS2,OAS3 |