sqlalchemy-bot · GitHub

Migrated issue, originally created by Scott Milliken (@smilliken)

Specifying a server_default for an Interval type and running autogenerate works fine the first time around:

interval = Column(Interval, server_default='14 days')

But on the second time around an exception is thrown:

  File "eggs/SQLAlchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/engine/default.py", line 435, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (ProgrammingError) operator does not exist: interval = integer
LINE 1: SELECT '14 days'::interval = 14 days
                                   ^
HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.
 "SELECT '14 days'::interval = 14 days" {}

I'm unable to figure out a work-around. Here's a few things I've tried:

interval = Column(Interval, server_default=text("'14 days'"))
 File "eggs/SQLAlchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/engine/default.py", line 435, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (ProgrammingError) operator does not exist: interval = integer
LINE 1: SELECT '14 days'::interval = 14 days
                                   ^
HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.
interval = Column(Interval, server_default=text("'14 days'::interval"))
  File "eggs/SQLAlchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/engine/default.py", line 435, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (ProgrammingError) column "14 days'::interval" does not exist
LINE 1: SELECT '14 days'::interval = "14 days'::interval"
                                     ^
 'SELECT \'14 days\'::interval = "14 days\'::interval"' {}
interval = Column(Interval, server_default=text("('14 days')::interval"))
  File "eggs/SQLAlchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/engine/default.py", line 435, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (ProgrammingError) column "('14 days')::interval" does not exist
LINE 1: SELECT '14 days'::interval = "('14 days')::interval"
                                     ^
 'SELECT \'14 days\'::interval = "(\'14 days\')::interval"' {}
interval = Column(Interval, server_default=text("('14 days')::\"interval\""))
  File "eggs/SQLAlchemy-0.9.4-py2.7-linux-x86_64.egg/sqlalchemy/engine/default.py", line 435, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (ProgrammingError) syntax error at or near "\"
LINE 1: SELECT '14 days'::interval = (\'14 days\')::"interval"
                                      ^
 'SELECT \'14 days\'::interval = (\\\'14 days\\\')::"interval"' {}

Read the original on github.com ↗