Here are the examples of the python api sqlalchemy.schema.DDL taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
18 Examples
3
Example 1
def test_repr(self):
assert repr(DDL('s'))
assert repr(DDL('s', on='engine'))
assert repr(DDL('s', on=lambda x: 1))
assert repr(DDL('s', context={'a': 1}))
assert repr(DDL('s', on='engine', context={'a': 1}))
3
Example 2
Project: postgresql-audit Source File: base.py
def get_table_listeners(self):
listeners = {'transaction': []}
listeners['activity'] = [
('after_create', sa.schema.DDL(
self.render_tmpl('create_activity.sql') +
self.render_tmpl('audit_table_func.sql')
)),
('after_create', self.create_operators)
]
if self.schema_name is not None:
listeners['transaction'] = [
('before_create', sa.schema.DDL(
self.render_tmpl('create_schema.sql')
)),
('after_drop', sa.schema.DDL(
self.render_tmpl('drop_schema.sql')
)),
]
return listeners
3
Example 3
Project: sqlalchemy-continuum Source File: postgresql.py
def create_versioning_trigger_listeners(manager, cls):
sa.event.listen(
cls.__table__,
'after_create',
sa.schema.DDL(str(CreateTriggerFunctionSQL.for_manager(manager, cls)))
)
sa.event.listen(
cls.__table__,
'after_create',
sa.schema.DDL(str(CreateTriggerSQL.for_manager(manager, cls)))
)
sa.event.listen(
cls.__table__,
'after_drop',
sa.schema.DDL(
'DROP FUNCTION IF EXISTS %s()' %
'%s_audit' % cls.__table__.name,
)
)
3
Example 4
Project: sqlalchemy-searchable Source File: __init__.py
def search_trigger_ddl(self, column):
"""
Returns the ddl for creating an automatically updated search trigger.
:param column: TSVectorType typed SQLAlchemy column object
"""
return DDL(str(CreateSearchTriggerSQL(column)))
3
Example 5
Project: sqlalchemy-fulltext-search Source File: __init__.py
@classmethod
def build_fulltext(cls):
"""
build up fulltext index after table is created
"""
if FullText not in cls.__bases__:
return
assert cls.__fulltext_columns__, "Model:{0.__name__} No FullText columns defined".format(cls)
event.listen(cls.__table__,
'after_create',
DDL(MYSQL_BUILD_INDEX_QUERY.format(cls,
", ".join((escape_quote(c)
for c in cls.__fulltext_columns__)))
)
)
0
Example 6
Project: SickGear Source File: test_reflection.py
@classmethod
def define_views(cls, metadata, schema):
for table_name in ('users', 'email_addresses'):
fullname = table_name
if schema:
fullname = "%s.%s" % (schema, table_name)
view_name = fullname + '_v'
query = "CREATE VIEW %s AS SELECT * FROM %s" % (
view_name, fullname)
event.listen(
metadata,
"after_create",
DDL(query)
)
event.listen(
metadata,
"before_drop",
DDL("DROP VIEW %s" % view_name)
)
0
Example 7
Project: sqlalchemy Source File: test_reflection.py
@classmethod
def define_temp_tables(cls, metadata):
# cheat a bit, we should fix this with some dialect-level
# temp table fixture
if testing.against("oracle"):
kw = {
'prefixes': ["GLOBAL TEMPORARY"],
'oracle_on_commit': 'PRESERVE ROWS'
}
else:
kw = {
'prefixes': ["TEMPORARY"],
}
user_tmp = Table(
"user_tmp", metadata,
Column("id", sa.INT, primary_key=True),
Column('name', sa.VARCHAR(50)),
Column('foo', sa.INT),
sa.UniqueConstraint('name', name='user_tmp_uq'),
sa.Index("user_tmp_ix", "foo"),
**kw
)
if testing.requires.view_reflection.enabled and \
testing.requires.temporary_views.enabled:
event.listen(
user_tmp, "after_create",
DDL("create temporary view user_tmp_v as "
"select * from user_tmp")
)
event.listen(
user_tmp, "before_drop",
DDL("drop view user_tmp_v")
)
0
Example 8
@classmethod
def define_views(cls, metadata, schema):
for table_name in ('users', 'email_addresses'):
fullname = table_name
if schema:
fullname = "%s.%s" % (schema, table_name)
view_name = fullname + '_v'
query = "CREATE VIEW %s AS SELECT * FROM %s" % (
view_name, fullname)
event.listen(
metadata,
"after_create",
DDL(query)
)
event.listen(
metadata,
"before_drop",
DDL("DROP VIEW %s" % view_name)
)
0
Example 9
Project: sqlalchemy Source File: test_ddlevents.py
def test_table_standalone(self):
users, engine = self.users, self.engine
event.listen(users, 'before_create', DDL('mxyzptlk'))
event.listen(users, 'after_create', DDL('klptzyxm'))
event.listen(users, 'before_drop', DDL('xyzzy'))
event.listen(users, 'after_drop', DDL('fnord'))
users.create()
strings = [str(x) for x in engine.mock]
assert 'mxyzptlk' in strings
assert 'klptzyxm' in strings
assert 'xyzzy' not in strings
assert 'fnord' not in strings
del engine.mock[:]
users.drop()
strings = [str(x) for x in engine.mock]
assert 'mxyzptlk' not in strings
assert 'klptzyxm' not in strings
assert 'xyzzy' in strings
assert 'fnord' in strings
0
Example 10
Project: sqlalchemy Source File: test_ddlevents.py
def test_table_by_metadata(self):
metadata, users, engine = self.metadata, self.users, self.engine
event.listen(users, 'before_create', DDL('mxyzptlk'))
event.listen(users, 'after_create', DDL('klptzyxm'))
event.listen(users, 'before_drop', DDL('xyzzy'))
event.listen(users, 'after_drop', DDL('fnord'))
metadata.create_all()
strings = [str(x) for x in engine.mock]
assert 'mxyzptlk' in strings
assert 'klptzyxm' in strings
assert 'xyzzy' not in strings
assert 'fnord' not in strings
del engine.mock[:]
metadata.drop_all()
strings = [str(x) for x in engine.mock]
assert 'mxyzptlk' not in strings
assert 'klptzyxm' not in strings
assert 'xyzzy' in strings
assert 'fnord' in strings
0
Example 11
Project: sqlalchemy Source File: test_ddlevents.py
@testing.uses_deprecated(r'See DDLEvents')
def test_table_by_metadata_deprecated(self):
metadata, users, engine = self.metadata, self.users, self.engine
DDL('mxyzptlk').execute_at('before-create', users)
DDL('klptzyxm').execute_at('after-create', users)
DDL('xyzzy').execute_at('before-drop', users)
DDL('fnord').execute_at('after-drop', users)
metadata.create_all()
strings = [str(x) for x in engine.mock]
assert 'mxyzptlk' in strings
assert 'klptzyxm' in strings
assert 'xyzzy' not in strings
assert 'fnord' not in strings
del engine.mock[:]
metadata.drop_all()
strings = [str(x) for x in engine.mock]
assert 'mxyzptlk' not in strings
assert 'klptzyxm' not in strings
assert 'xyzzy' in strings
assert 'fnord' in strings
0
Example 12
def test_metadata(self):
metadata, engine = self.metadata, self.engine
event.listen(metadata, 'before_create', DDL('mxyzptlk'))
event.listen(metadata, 'after_create', DDL('klptzyxm'))
event.listen(metadata, 'before_drop', DDL('xyzzy'))
event.listen(metadata, 'after_drop', DDL('fnord'))
metadata.create_all()
strings = [str(x) for x in engine.mock]
assert 'mxyzptlk' in strings
assert 'klptzyxm' in strings
assert 'xyzzy' not in strings
assert 'fnord' not in strings
del engine.mock[:]
metadata.drop_all()
strings = [str(x) for x in engine.mock]
assert 'mxyzptlk' not in strings
assert 'klptzyxm' not in strings
assert 'xyzzy' in strings
assert 'fnord' in strings
0
Example 13
Project: sqlalchemy Source File: test_ddlevents.py
@testing.uses_deprecated(r'See DDLEvents')
def test_metadata_deprecated(self):
metadata, engine = self.metadata, self.engine
DDL('mxyzptlk').execute_at('before-create', metadata)
DDL('klptzyxm').execute_at('after-create', metadata)
DDL('xyzzy').execute_at('before-drop', metadata)
DDL('fnord').execute_at('after-drop', metadata)
metadata.create_all()
strings = [str(x) for x in engine.mock]
assert 'mxyzptlk' in strings
assert 'klptzyxm' in strings
assert 'xyzzy' not in strings
assert 'fnord' not in strings
del engine.mock[:]
metadata.drop_all()
strings = [str(x) for x in engine.mock]
assert 'mxyzptlk' not in strings
assert 'klptzyxm' not in strings
assert 'xyzzy' in strings
assert 'fnord' in strings
0
Example 14
Project: sqlalchemy Source File: test_ddlevents.py
@testing.requires.sqlite
def test_ddl_execute(self):
engine = create_engine('sqlite:///')
cx = engine.connect()
table = self.users
ddl = DDL('SELECT 1')
for py in ('engine.execute(ddl)',
'engine.execute(ddl, table)',
'cx.execute(ddl)',
'cx.execute(ddl, table)',
'ddl.execute(engine)',
'ddl.execute(engine, table)',
'ddl.execute(cx)',
'ddl.execute(cx, table)'):
r = eval(py)
assert list(r) == [(1,)], py
for py in ('ddl.execute()',
'ddl.execute(target=table)'):
try:
r = eval(py)
assert False
except tsa.exc.UnboundExecutionError:
pass
for bind in engine, cx:
ddl.bind = bind
for py in ('ddl.execute()',
'ddl.execute(target=table)'):
r = eval(py)
assert list(r) == [(1,)], py
0
Example 15
Project: sqlalchemy Source File: test_ddlevents.py
def test_platform_escape(self):
"""test the escaping of % characters in the DDL construct."""
default_from = testing.db.dialect.statement_compiler(
testing.db.dialect, None).default_from()
# We're abusing the DDL()
# construct here by pushing a SELECT through it
# so that we can verify the round trip.
# the DDL() will trigger autocommit, which prohibits
# some DBAPIs from returning results (pyodbc), so we
# run in an explicit transaction.
with testing.db.begin() as conn:
eq_(
conn.execute(
text("select 'foo%something'" + default_from)
).scalar(),
'foo%something'
)
eq_(
conn.execute(
DDL("select 'foo%%something'" + default_from)
).scalar(),
'foo%something'
)
0
Example 16
Project: sqlalchemy Source File: test_ddlevents.py
def test_tokens(self):
m = MetaData()
sane_alone = Table('t', m, Column('id', Integer))
sane_schema = Table('t', m, Column('id', Integer), schema='s')
insane_alone = Table('t t', m, Column('id', Integer))
insane_schema = Table('t t', m, Column('id', Integer),
schema='s s')
ddl = DDL('%(schema)s-%(table)s-%(fullname)s')
dialect = self.mock_engine().dialect
self.assert_compile(ddl.against(sane_alone), '-t-t',
dialect=dialect)
self.assert_compile(ddl.against(sane_schema), 's-t-s.t',
dialect=dialect)
self.assert_compile(ddl.against(insane_alone), '-"t t"-"t t"',
dialect=dialect)
self.assert_compile(ddl.against(insane_schema),
'"s s"-"t t"-"s s"."t t"', dialect=dialect)
# overrides are used piece-meal and verbatim.
ddl = DDL('%(schema)s-%(table)s-%(fullname)s-%(bonus)s',
context={'schema': 'S S', 'table': 'T T', 'bonus': 'b'
})
self.assert_compile(ddl.against(sane_alone), 'S S-T T-t-b',
dialect=dialect)
self.assert_compile(ddl.against(sane_schema), 'S S-T T-s.t-b',
dialect=dialect)
self.assert_compile(ddl.against(insane_alone), 'S S-T T-"t t"-b',
dialect=dialect)
self.assert_compile(ddl.against(insane_schema),
'S S-T T-"s s"."t t"-b', dialect=dialect)
0
Example 17
def create_triggers(cls):
sa.event.listen(
cls.__table__,
'after_create',
sa.schema.DDL(
procedure_sql.format(
temporary_transaction_sql=CreateTemporaryTransactionTableSQL(),
insert_temporary_transaction_sql=(
InsertTemporaryTransactionSQL(
transaction_id_values='NEW.id'
)
),
)
)
)
sa.event.listen(
cls.__table__,
'after_create',
sa.schema.DDL(str(TransactionTriggerSQL(cls)))
)
sa.event.listen(
cls.__table__,
'after_drop',
sa.schema.DDL(
'DROP FUNCTION IF EXISTS transaction_temp_table_generator()'
)
)
0
Example 18
Project: sqlalchemy-searchable Source File: __init__.py
def attach_ddl_listeners(self):
# Remove all previously added listeners, so that same listener don't
# get added twice in situations where class configuration happens in
# multiple phases (issue #31).
for listener in self.listeners:
event.remove(*listener)
self.listeners = []
for column in self.processed_columns:
# This sets up the trigger that keeps the tsvector column up to
# date.
if column.type.columns:
table = column.table
if self.option(column, 'remove_symbols'):
self.add_listener((
table,
'after_create',
self.search_function_ddl(column)
))
self.add_listener((
table,
'after_drop',
DDL(str(DropSearchFunctionSQL(column)))
))
self.add_listener((
table,
'after_create',
self.search_trigger_ddl(column)
))