rendered_metadata_default,
rendered_inspector_default):
- rendered_metadata_default = re.sub(
- r"^'|'$", "", rendered_metadata_default)
- return rendered_inspector_default != repr(rendered_metadata_default)
+ if rendered_metadata_default is not None:
+ rendered_metadata_default = re.sub(
+ r"^\"'|\"'$", "", rendered_metadata_default)
+ if rendered_inspector_default is not None:
+ rendered_inspector_default = re.sub(
+ r"^\"'|\"'$", "", rendered_inspector_default)
+
+ return rendered_inspector_default != rendered_metadata_default
def correct_for_autogen_constraints(
self, conn_unique_constraints, conn_indexes,
Numeric, CHAR, ForeignKey, DATETIME, Integer, \
CheckConstraint, Unicode, Enum,\
UniqueConstraint, Boolean, ForeignKeyConstraint,\
- PrimaryKeyConstraint, Index, func, text
+ PrimaryKeyConstraint, Index, func, text, DefaultClause
from sqlalchemy.types import TIMESTAMP
from sqlalchemy.dialects import mysql, postgresql
'nullable=False)'
)
+ def test_render_server_default_int(self):
+ c = Column(
+ 'value', Integer,
+ server_default="0")
+ result = autogenerate.render._render_column(
+ c, self.autogen_context
+ )
+ eq_(
+ result,
+ "sa.Column('value', sa.Integer(), "
+ "server_default='0', nullable=True)"
+ )
+ def test_render_modify_reflected_int_server_default(self):
+ eq_ignore_whitespace(
+ autogenerate.render._modify_col(
+ "sometable", "somecolumn",
+ self.autogen_context,
+ existing_type=Integer(),
+ existing_server_default=DefaultClause(text("5")),
+ nullable=True),
+ "op.alter_column('sometable', 'somecolumn', "
+ "existing_type=sa.Integer(), nullable=True, "
+ "existing_server_default=sa.text('5'))"
+ )
import sys
from sqlalchemy import MetaData, Column, Table, Integer, String, Text, \
- Numeric, CHAR, ForeignKey, DATETIME, INTEGER, \
- TypeDecorator, CheckConstraint, Unicode, Enum,\
- UniqueConstraint, Boolean, ForeignKeyConstraint,\
- PrimaryKeyConstraint, Index, func
+ Numeric, CHAR, ForeignKey, INTEGER, \
+ TypeDecorator, CheckConstraint, text
from sqlalchemy.types import NULLTYPE
from sqlalchemy.engine.reflection import Inspector
Table('order', m,
Column('order_id', Integer, primary_key=True),
Column("amount", Numeric(8, 2), nullable=False,
- server_default="0"),
+ server_default=text("0")),
CheckConstraint('amount >= 0', name='ck_order_amount')
)
Table('order', m,
Column('order_id', Integer, primary_key=True),
Column('amount', Numeric(10, 2), nullable=True,
- server_default="0"),
+ server_default=text("0")),
Column('user_id', Integer, ForeignKey('user.id')),
CheckConstraint('amount > -1', name='ck_order_amount'),
)
existing_type=sa.NUMERIC(precision=8, scale=2),
type_=sa.Numeric(precision=10, scale=2),
nullable=True,
- existing_server_default='0')
+ existing_server_default=sa.text('0'))
op.drop_column('user', 'pw')
op.alter_column('user', 'a1',
existing_type=sa.TEXT(),
existing_type=sa.Numeric(precision=10, scale=2),
type_=sa.NUMERIC(precision=8, scale=2),
nullable=False,
- existing_server_default='0')
+ existing_server_default=sa.text('0'))
op.drop_column('order', 'user_id')
op.drop_column('address', 'street')
op.create_table('extra',
existing_type=sa.NUMERIC(precision=8, scale=2),
type_=sa.Numeric(precision=10, scale=2),
nullable=True,
- existing_server_default='0::numeric',
+ existing_server_default=sa.text('0'),
schema='%(schema)s')
op.drop_column('user', 'pw', schema='%(schema)s')
op.alter_column('user', 'a1',
existing_type=sa.Numeric(precision=10, scale=2),
type_=sa.NUMERIC(precision=8, scale=2),
nullable=False,
- existing_server_default='0::numeric',
+ existing_server_default=sa.text('0'),
schema='%(schema)s')
op.drop_column('order', 'user_id', schema='%(schema)s')
op.drop_column('address', 'street', schema='%(schema)s')