DDL
===

Because of some of the limitations in the SQLAlchemy API, it's not possible to
create tables using :meth:`sqlalchemy.schema.Table.create` or
:meth:`sqlalchemy.schema.MetaData.create_all`. Luckily, SQLAlchemy provides an
API that still makes it possible to create tables and perform other DDL
operations.

Instead of:

.. code-block:: python

    users = Table("users", metadata,
        Column("id", Integer(), primary_key=True),
        Column("name", String()),
    )

    users.create(engine)

or

.. code-block:: python

    metadata.create_all()

You can use :py:class:`sqlalchemy.schema.CreateTable`:

.. code-block:: python

    from sqlalchemy.schema import CreateTable

    d = engine.execute(CreateTable(users))
