Don't test database columns; that's just testing implementation. Don't test implementation, test behavior. Do test functionality that uses the attributes that are stored in those columns. Exception: if there are external requirements on your schema (this has never happened to me but I can imagine it), it might be helpful to write tests to show that those requirements are met.
Test indexes? It depends. If you're strictly test-driven, you may want to write a test for each index that you add purely for performance reasons. I'm pretty test-driven, but I don't write tests like this; I just create the indexes. The real test of the indexes is their effect on performance. In any case, there is no point in testing that indexes exist that have to exist anyway to support functionality that you're already testing (primary keys, foreign keys, unique constraints, etc.).