Beispiel #1
0
def test_basic_schemainspect():
    a = ColumnInfo("a", "text", str)
    a2 = ColumnInfo("a", "text", str)
    b = ColumnInfo("b", "varchar", str, dbtypestr="varchar(10)")
    b2 = ColumnInfo(
        "b", "text", str, dbtypestr="text", default="'d'::text", not_null=True
    )
    assert a == a2
    assert a == a
    assert a != b
    assert b != b2
    alter = b2.alter_table_statements(b, "t")
    assert alter == [
        "alter table t alter column \"b\" set default 'd'::text;",
        'alter table t alter column "b" set not null;',
        'alter table t alter column "b" set data type text using "b"::text;',
    ]
    alter = b.alter_table_statements(b2, "t")
    assert alter == [
        'alter table t alter column "b" drop default;',
        'alter table t alter column "b" drop not null;',
        'alter table t alter column "b" set data type varchar(10) using "b"::varchar(10);',
    ]
    b.add_column_clause == 'add column "b"'
    b.drop_column_clause == 'drop column "b"'
    with temporary_database("sqlite") as dburl:
        with raises(NotImplementedError):
            with S(dburl) as s:
                get_inspector(s)
Beispiel #2
0
def test_basic_schemainspect():
    a = ColumnInfo('a', 'text', str)
    a2 = ColumnInfo('a', 'text', str)
    b = ColumnInfo('b', 'varchar', str, dbtypestr='varchar(10)')
    b2 = ColumnInfo('b',
                    'text',
                    str,
                    dbtypestr='text',
                    default="'d'::text",
                    not_null=True)
    assert a == a2
    assert a == a
    assert a != b
    assert b != b2
    alter = b2.alter_table_statements(b, 't')
    assert alter == [
        'alter table t alter column "b" set default \'d\'::text;',
        'alter table t alter column "b" set not null;',
        'alter table t alter column "b" set data type text;',
    ]
    alter = b.alter_table_statements(b2, 't')
    assert alter == [
        'alter table t alter column "b" drop default;',
        'alter table t alter column "b" drop not null;',
        'alter table t alter column "b" set data type varchar(10);',
    ]
    b.add_column_clause == 'add column "b"'
    b.drop_column_clause == 'drop column "b"'
    with temporary_database('sqlite') as dburl:
        with raises(NotImplementedError):
            with S(dburl) as s:
                get_inspector(s)
Beispiel #3
0
def test_basic_schemainspect():
    a = ColumnInfo("a", "text", str)
    a2 = ColumnInfo("a", "text", str)
    b = ColumnInfo("b", "varchar", str, dbtypestr="varchar(10)")
    b2 = ColumnInfo("b",
                    "text",
                    str,
                    dbtypestr="text",
                    default="'d'::text",
                    not_null=True)
    assert a == a2
    assert a == a
    assert a != b
    assert b != b2
    alter = b2.alter_table_statements(b, "t")
    assert alter == [
        "alter table t alter column \"b\" set default 'd'::text;",
        'alter table t alter column "b" set not null;',
        'alter table t alter column "b" set data type text using "b"::text;',
    ]
    alter = b.alter_table_statements(b2, "t")
    assert alter == [
        'alter table t alter column "b" drop default;',
        'alter table t alter column "b" drop not null;',
        'alter table t alter column "b" set data type varchar(10) using "b"::varchar(10);',
    ]
    b.add_column_clause == 'add column "b"'
    b.drop_column_clause == 'drop column "b"'
    with temporary_database("sqlite") as dburl:
        with raises(NotImplementedError):
            with S(dburl) as s:
                get_inspector(s)
Beispiel #4
0
    "title" character varying not null,
    "did" bigint not null,
    "date_prod" date,
    "kind" character varying(10),
    "len" interval hour to minute,
    "drange" daterange
);
"""
CV = 'character varying'
CV10 = 'character varying(10)'
INT = 'interval'
INTHM = 'interval hour to minute'
PGRANGE = sqlalchemy.dialects.postgresql.ranges.DATERANGE
TD = datetime.timedelta
FILMS_COLUMNS = od([
    ('code', ColumnInfo('code', 'character', str, dbtypestr='character(5)')),
    ('title', ColumnInfo('title', 'character varying', str)),
    ('did', ColumnInfo('did', 'bigint', int)),
    ('date_prod', ColumnInfo('date_prod', 'date', datetime.date)),
    ('kind', ColumnInfo('kind', CV, str, dbtypestr=CV10)),
    ('len', ColumnInfo('len', INT, TD, dbtypestr=INTHM)),
    (u'drange', ColumnInfo('drange', 'daterange', PGRANGE)),
])
FILMSF_COLUMNS = od([
    ('title', ColumnInfo('title', 'character varying', str)),
    ('release_date', ColumnInfo('release_date', 'date', datetime.date)),
])
d1 = ColumnInfo('d', 'date', datetime.date)
d2 = ColumnInfo('def_t', 'text', str, default='NULL::text')
d3 = ColumnInfo('def_d', 'date', datetime.date, default="'2014-01-01'::date")
FILMSF_INPUTS = [d1, d2, d3]
Beispiel #5
0
    "title" character varying not null,
    "did" bigint not null,
    "date_prod" date,
    "kind" character varying(10),
    "len" interval hour to minute,
    "drange" daterange
);
"""
CV = "character varying"
CV10 = "character varying(10)"
INT = "interval"
INTHM = "interval hour to minute"
PGRANGE = sqlalchemy.dialects.postgresql.ranges.DATERANGE
TD = datetime.timedelta
FILMS_COLUMNS = od([
    ("code", ColumnInfo("code", "character", str, dbtypestr="character(5)")),
    ("title", ColumnInfo("title", "character varying", str)),
    ("did", ColumnInfo("did", "bigint", int)),
    ("date_prod", ColumnInfo("date_prod", "date", datetime.date)),
    ("kind", ColumnInfo("kind", CV, str, dbtypestr=CV10)),
    ("len", ColumnInfo("len", INT, TD, dbtypestr=INTHM)),
    ("drange", ColumnInfo("drange", "daterange", PGRANGE)),
])
FILMSF_COLUMNS = od([
    ("title", ColumnInfo("title", "character varying", str)),
    ("release_date", ColumnInfo("release_date", "date", datetime.date)),
])
d1 = ColumnInfo("d", "date", datetime.date)
d2 = ColumnInfo("def_t", "text", str, default="NULL::text")
d3 = ColumnInfo("def_d", "date", datetime.date, default="'2014-01-01'::date")
FILMSF_INPUTS = [d1, d2, d3]