def _render_create_table_comment(
autogen_context: AutogenContext, op: ops.CreateTableCommentOp
) -> str:
- templ = (
- "{prefix}create_table_comment(\n"
- "{indent}'{tname}',\n"
- "{indent}{comment},\n"
- "{indent}existing_comment={existing},\n"
- "{indent}schema={schema}\n"
- ")"
- )
+ if autogen_context._has_batch:
+ templ = (
+ "{prefix}create_table_comment(\n"
+ "{indent}{comment},\n"
+ "{indent}existing_comment={existing}\n"
+ ")"
+ )
+ else:
+ templ = (
+ "{prefix}create_table_comment(\n"
+ "{indent}'{tname}',\n"
+ "{indent}{comment},\n"
+ "{indent}existing_comment={existing},\n"
+ "{indent}schema={schema}\n"
+ ")"
+ )
return templ.format(
prefix=_alembic_autogenerate_prefix(autogen_context),
tname=op.table_name,
def _render_drop_table_comment(
autogen_context: AutogenContext, op: ops.DropTableCommentOp
) -> str:
- templ = (
- "{prefix}drop_table_comment(\n"
- "{indent}'{tname}',\n"
- "{indent}existing_comment={existing},\n"
- "{indent}schema={schema}\n"
- ")"
- )
+ if autogen_context._has_batch:
+ templ = (
+ "{prefix}drop_table_comment(\n"
+ "{indent}existing_comment={existing}\n"
+ ")"
+ )
+ else:
+ templ = (
+ "{prefix}drop_table_comment(\n"
+ "{indent}'{tname}',\n"
+ "{indent}existing_comment={existing},\n"
+ "{indent}schema={schema}\n"
+ ")"
+ )
return templ.format(
prefix=_alembic_autogenerate_prefix(autogen_context),
tname=op.table_name,
")",
)
+ @testing.combinations((True,), (False,), argnames="use_schema")
+ def test_render_create_table_comment_op_batch(self, use_schema):
+ """test #1361"""
+ uo = ops.UpgradeOps(
+ ops=[
+ ops.ModifyTableOps(
+ "table_name",
+ schema="SomeSchema" if use_schema else None,
+ ops=[
+ ops.CreateTableCommentOp(
+ "table_name",
+ "comment",
+ schema="SomeSchema" if use_schema else None,
+ )
+ ],
+ )
+ ]
+ )
+
+ eq_(
+ autogenerate.render_python_code(uo, render_as_batch=True),
+ "# ### commands auto generated by Alembic - please adjust! ###\n"
+ " with op.batch_alter_table('table_name', "
+ f"schema={repr('SomeSchema' if use_schema else None)}) "
+ "as batch_op:\n"
+ " batch_op.create_table_comment(\n"
+ " 'comment',\n"
+ " existing_comment=None\n"
+ " )\n\n"
+ " # ### end Alembic commands ###",
+ )
+
def test_render_drop_table_comment_op(self):
op_obj = ops.DropTableCommentOp("table_name")
eq_ignore_whitespace(
")",
)
+ @testing.combinations((True,), (False,), argnames="use_schema")
+ def test_render_drop_table_comment_op_batch(self, use_schema):
+ """test #1361"""
+ uo = ops.UpgradeOps(
+ ops=[
+ ops.ModifyTableOps(
+ "table_name",
+ schema="SomeSchema" if use_schema else None,
+ ops=[
+ ops.DropTableCommentOp(
+ "table_name",
+ schema="SomeSchema" if use_schema else None,
+ )
+ ],
+ )
+ ]
+ )
+
+ eq_(
+ autogenerate.render_python_code(uo, render_as_batch=True),
+ "# ### commands auto generated by Alembic - please adjust! ###\n"
+ " with op.batch_alter_table('table_name', "
+ f"schema={repr('SomeSchema' if use_schema else None)}) "
+ "as batch_op:\n"
+ " batch_op.drop_table_comment(\n"
+ " existing_comment=None\n"
+ " )\n\n"
+ " # ### end Alembic commands ###",
+ )
+
def test_render_drop_table_comment_op_existing_with_quote(self):
op_obj = ops.DropTableCommentOp(
"table_name", existing_comment="This was john's comment"