docs: def dump_ddl(metadata: MetaData,
               dialect_name: str,
               fileobj: TextIO = sys.stdout,
               checkfirst: bool = True) -> None:
      """
      Sends schema-creating DDL from the metadata to the dump engine.
      This makes ``CREATE TABLE`` statements.
  
      Args:
          metadata: SQLAlchemy :class:`MetaData`
          dialect_name: string name of SQL dialect to generate DDL in
          fileobj: file-like object to send DDL to
          checkfirst: if ``True``, use ``CREATE TABLE IF NOT EXISTS`` or
              equivalent.
      """
      # http://docs.sqlalchemy.org/en/rel_0_8/faq.html#how-can-i-get-the-create-table-drop-table-output-as-a-string  # noqa
      # http://stackoverflow.com/questions/870925/how-to-generate-a-file-with-ddl-in-the-engines-sql-dialect-in-sqlalchemy  # noqa
      # https://github.com/plq/scripts/blob/master/pg_dump.py
      # noinspection PyUnusedLocal
      def dump(querysql, *multiparams, **params):
          compsql = querysql.compile(dialect=engine.dialect)
          writeline_nl(fileobj, "{sql};".format(sql=compsql))
  
      writeline_nl(fileobj,
                   sql_comment("Schema (for dialect {}):".format(dialect_name)))
      engine = create_engine('{dialect}://'.format(dialect=dialect_name),
                             strategy='mock', executor=dump)
      metadata.create_all(engine, checkfirst=checkfirst)