# render python
def _add_table(table, autogen_context):
- return "create_table(%(tablename)r,\n%(args)s\n)" % {
+ return "%(prefix)screate_table(%(tablename)r,\n%(args)s\n)" % {
'tablename':table.name,
+ 'prefix':_alembic_autogenerate_prefix(),
'args':',\n'.join(
[_render_column(col, autogen_context) for col in table.c] +
sorted([rcons for rcons in
}
def _drop_table(table, autogen_context):
- return "drop_table(%r)" % table.name
+ return "%(prefix)sdrop_table(%(tname)r)" % {
+ "prefix":_alembic_autogenerate_prefix(),
+ "tname":table.name
+ }
def _add_column(tname, column, autogen_context):
- return "add_column(%r, %s)" % (
- tname,
- _render_column(column, autogen_context))
+ return "%(prefix)sadd_column(%(tname)r, %(column)s)" % {
+ "prefix":_alembic_autogenerate_prefix(),
+ "tname":tname,
+ "column":_render_column(column, autogen_context)
+ }
def _drop_column(tname, column, autogen_context):
- return "drop_column(%r, %r)" % (tname, column.name)
+ return "%(prefix)sdrop_column(%(tname)r, %(cname)r)" % {
+ "prefix":_alembic_autogenerate_prefix(),
+ "tname":tname,
+ "cname":column.name
+ }
def _modify_col(tname, cname,
autogen_context,
existing_type=None,
existing_nullable=None,
existing_server_default=False):
- prefix = _autogenerate_prefix()
+ sqla_prefix = _sqlalchemy_autogenerate_prefix()
indent = " " * 11
- text = "alter_column(%r, %r" % (tname, cname)
+ text = "%(prefix)salter_column(%(tname)r, %(cname)r" % {
+ 'prefix':_alembic_autogenerate_prefix(),
+ 'tname':tname,
+ 'cname':cname}
text += ", \n%sexisting_type=%s" % (indent,
- _repr_type(prefix, existing_type, autogen_context))
+ _repr_type(sqla_prefix, existing_type, autogen_context))
if server_default is not False:
text += ", \n%sserver_default=%s" % (indent,
_render_server_default(server_default, autogen_context),)
if type_ is not None:
- text += ", \n%stype_=%s" % (indent, _repr_type(prefix, type_, autogen_context))
+ text += ", \n%stype_=%s" % (indent, _repr_type(sqla_prefix, type_, autogen_context))
if nullable is not None:
text += ", \n%snullable=%r" % (
indent, nullable,)
text += ")"
return text
-def _autogenerate_prefix():
+def _sqlalchemy_autogenerate_prefix():
return _context_opts['sqlalchemy_module_prefix'] or ''
+def _alembic_autogenerate_prefix():
+ return _context_opts['alembic_module_prefix'] or ''
+
def _render_column(column, autogen_context):
opts = []
if column.server_default:
# TODO: for non-ascii colname, assign a "key"
return "%(prefix)sColumn(%(name)r, %(type)s, %(kw)s)" % {
- 'prefix':_autogenerate_prefix(),
+ 'prefix':_sqlalchemy_autogenerate_prefix(),
'name':column.name,
- 'type':_repr_type(_autogenerate_prefix(), column.type, autogen_context),
+ 'type':_repr_type(_sqlalchemy_autogenerate_prefix(), column.type, autogen_context),
'kw':", ".join(["%s=%s" % (kwname, val) for kwname, val in opts])
}
if constraint.name:
opts.append(("name", repr(constraint.name)))
return "%(prefix)sPrimaryKeyConstraint(%(args)s)" % {
- "prefix":_autogenerate_prefix(),
+ "prefix":_sqlalchemy_autogenerate_prefix(),
"args":", ".join(
[repr(c.key) for c in constraint.columns] +
["%s=%s" % (kwname, val) for kwname, val in opts]
opts.append(("name", repr(constraint.name)))
# TODO: deferrable, initially, etc.
return "%(prefix)sForeignKeyConstraint([%(cols)s], [%(refcols)s], %(args)s)" % {
- "prefix":_autogenerate_prefix(),
+ "prefix":_sqlalchemy_autogenerate_prefix(),
"cols":", ".join(f.parent.key for f in constraint.elements),
"refcols":", ".join(repr(f._get_colspec()) for f in constraint.elements),
"args":", ".join(
if constraint.name:
opts.append(("name", repr(constraint.name)))
return "%(prefix)sCheckConstraint('TODO')" % {
- "prefix":_autogenerate_prefix()
+ "prefix":_sqlalchemy_autogenerate_prefix()
}
_constraint_renderers = {
autogenerate.produce_migration_diffs(template_args, self.autogen_context)
eq_(re.sub(r"u'", "'", template_args['upgrades']),
"""### commands auto generated by Alembic - please adjust! ###
- create_table('item',
+ op.create_table('item',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('description', sa.String(length=100), nullable=True),
sa.Column('order_id', sa.Integer(), nullable=True),
sa.ForeignKeyConstraint([order_id], ['order.order_id'], ),
sa.PrimaryKeyConstraint('id')
)
- drop_table('extra')
- add_column('address', sa.Column('street', sa.String(length=50), nullable=True))
- add_column('order', sa.Column('user_id', sa.Integer(), nullable=True))
- alter_column('order', 'amount',
+ op.drop_table('extra')
+ op.add_column('address', sa.Column('street', sa.String(length=50), nullable=True))
+ op.add_column('order', sa.Column('user_id', sa.Integer(), nullable=True))
+ op.alter_column('order', 'amount',
existing_type=sa.NUMERIC(precision=8, scale=2),
type_=sa.Numeric(precision=10, scale=2),
nullable=True,
existing_server_default='0')
- drop_column('user', 'pw')
- alter_column('user', 'a1',
+ op.drop_column('user', 'pw')
+ op.alter_column('user', 'a1',
existing_type=sa.TEXT(),
server_default='x',
existing_nullable=True)
- alter_column('user', 'name',
+ op.alter_column('user', 'name',
existing_type=sa.VARCHAR(length=50),
nullable=False)
### end Alembic commands ###""")
eq_(re.sub(r"u'", "'", template_args['downgrades']),
"""### commands auto generated by Alembic - please adjust! ###
- drop_table('item')
- create_table('extra',
+ op.drop_table('item')
+ op.create_table('extra',
sa.Column('x', sa.CHAR(), nullable=True),
sa.Column('uid', sa.INTEGER(), nullable=True),
sa.ForeignKeyConstraint([uid], ['user.id'], ),
sa.PrimaryKeyConstraint()
)
- drop_column('address', 'street')
- drop_column('order', 'user_id')
- alter_column('order', 'amount',
+ op.drop_column('address', 'street')
+ op.drop_column('order', 'user_id')
+ op.alter_column('order', 'amount',
existing_type=sa.Numeric(precision=10, scale=2),
type_=sa.NUMERIC(precision=8, scale=2),
nullable=False,
existing_server_default='0')
- add_column('user', sa.Column('pw', sa.VARCHAR(length=50), nullable=True))
- alter_column('user', 'a1',
+ op.add_column('user', sa.Column('pw', sa.VARCHAR(length=50), nullable=True))
+ op.alter_column('user', 'a1',
existing_type=sa.TEXT(),
server_default=None,
existing_nullable=True)
- alter_column('user', 'name',
+ op.alter_column('user', 'name',
existing_type=sa.VARCHAR(length=50),
nullable=True)
### end Alembic commands ###""")
@requires_07
def setup_class(cls):
context._context_opts['sqlalchemy_module_prefix'] = 'sa.'
+ context._context_opts['alembic_module_prefix'] = 'op.'
def test_render_table_upgrade(self):
m = MetaData()
)
eq_ignore_whitespace(
autogenerate._add_table(t, {}),
- "create_table('test',"
+ "op.create_table('test',"
"sa.Column('id', sa.Integer(), nullable=False),"
"sa.Column('address_id', sa.Integer(), nullable=True),"
"sa.Column('timestamp', sa.DATETIME(), "
def test_render_drop_table(self):
eq_(
autogenerate._drop_table(Table("sometable", MetaData()), {}),
- "drop_table('sometable')"
+ "op.drop_table('sometable')"
)
def test_render_add_column(self):
eq_(
autogenerate._add_column(
"foo", Column("x", Integer, server_default="5"), {}),
- "add_column('foo', sa.Column('x', sa.Integer(), "
+ "op.add_column('foo', sa.Column('x', sa.Integer(), "
"server_default='5', nullable=True))"
)
autogenerate._drop_column(
"foo", Column("x", Integer, server_default="5"), {}),
- "drop_column('foo', 'x')"
+ "op.drop_column('foo', 'x')"
)
def test_render_modify_type(self):
"sometable", "somecolumn",
{},
type_=CHAR(10), existing_type=CHAR(20)),
- "alter_column('sometable', 'somecolumn', "
+ "op.alter_column('sometable', 'somecolumn', "
"existing_type=sa.CHAR(length=20), type_=sa.CHAR(length=10))"
)
{},
existing_type=Integer(),
nullable=True),
- "alter_column('sometable', 'somecolumn', "
+ "op.alter_column('sometable', 'somecolumn', "
"existing_type=sa.Integer(), nullable=True)"
)
existing_type=Integer(),
existing_server_default="5",
nullable=True),
- "alter_column('sometable', 'somecolumn', "
+ "op.alter_column('sometable', 'somecolumn', "
"existing_type=sa.Integer(), nullable=True, "
"existing_server_default='5')"
)