From: Carlos Eduardo Rivera Date: Mon, 25 Aug 2014 21:21:41 +0000 (-0500) Subject: moving textclause logic into _render_server_default X-Git-Tag: rel_0_7_0~78^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6396ccfb775be8a242db1518b6abf1357a23a0a6;p=thirdparty%2Fsqlalchemy%2Falembic.git moving textclause logic into _render_server_default --- diff --git a/alembic/autogenerate/render.py b/alembic/autogenerate/render.py index e8d5f885..fc8dfa5e 100644 --- a/alembic/autogenerate/render.py +++ b/alembic/autogenerate/render.py @@ -299,13 +299,7 @@ def _render_column(column, autogen_context): ) if rendered: - if isinstance(column.server_default.arg, sql.elements.TextClause): - opts.append(("server_default", "%(prefix)stext(%(default)s)" % { - 'prefix': _sqlalchemy_autogenerate_prefix(autogen_context), - 'default': rendered - })) - else: - opts.append(("server_default", rendered)) + opts.append(("server_default", rendered)) if not column.autoincrement: opts.append(("autoincrement", column.autoincrement)) @@ -326,18 +320,27 @@ def _render_server_default(default, autogen_context, repr_=True): if rendered is not False: return rendered + add_text_wrap = False if isinstance(default, sa_schema.DefaultClause): + add_text_wrap = isinstance(default.arg, sql.elements.TextClause) + if isinstance(default.arg, string_types): default = default.arg else: default = str(default.arg.compile( dialect=autogen_context['dialect'])) + if isinstance(default, string_types): if repr_: - default = re.sub(r"^'|'$", "", default) - return repr(default) - else: - return default + default = repr(re.sub(r"^'|'$", "", default)) + + if add_text_wrap: + default = "%(prefix)stext(%(default)s)" % { + 'prefix': _sqlalchemy_autogenerate_prefix(autogen_context), + 'default': default + } + + return default else: return None