Example #1
0
    def test_alter_column_nullable(self):
        meta = sqlalchemy.MetaData()
        column = sqlalchemy.Column('uuid', sqlalchemy.String(36))
        table = _table('a', meta, sqlalchemy.Column('id', sqlalchemy.Integer),
                       column)
        meta.create_all(self.engine)

        self.assertTrue(table.c.uuid.nullable)

        op = sa_migration.AlterColumn('a', 'uuid', {
            'nullable': False,
            'existing_type': column.type
        })
        op.execute(self.ddlop)

        table = oslodbutils.get_table(self.engine, 'a')
        self.assertFalse(table.c.uuid.nullable)
Example #2
0
    def test_alter_column_type(self):
        meta = sqlalchemy.MetaData()
        column = sqlalchemy.Column('uuid', sqlalchemy.Text)
        table = _table('a', meta, sqlalchemy.Column('id', sqlalchemy.Integer),
                       column)
        meta.create_all(self.engine)

        self.assertIsInstance(table.c.uuid.type, sqlalchemy.Text)

        new_type = sqlalchemy.String(36)

        op = sa_migration.AlterColumn('a', 'uuid', {
            'nullable': True,
            'type_': new_type
        })
        op.execute(self.ddlop)

        table = oslodbutils.get_table(self.engine, 'a')
        self.assertIsInstance(table.c.uuid.type, sqlalchemy.String)
        # Text is a subclass of String, so the previous assert could pass
        # if the column type didn't change
        self.assertNotIsInstance(table.c.uuid.type, sqlalchemy.Text)