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)
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)