)]}'
{"glance/db/sqlalchemy/migrate_repo/versions/016_image_member_index.py":[{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"15fca03711338dea45971c9ce74e88e9dd24b13a","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            UniqueConstraint(\u0027image_id\u0027,"},{"line_number":41,"context_line":"                             name\u003d\u0027image_members_image_id_key\u0027,"},{"line_number":42,"context_line":"                             table\u003dimage_members).drop()"},{"line_number":43,"context_line":"        UniqueConstraint(\u0027image_id\u0027,"},{"line_number":44,"context_line":"                         \u0027member\u0027,"},{"line_number":45,"context_line":"                         \u0027deleted_at\u0027,"},{"line_number":46,"context_line":"                         table\u003dimage_members).create()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FikM%3D","line":43,"updated":"2013-01-16 21:04:30.000000000","message":"Can you create this with a known name so we can easily get a handle on it in a later migration if necessary?","commit_id":"ec9ae722b1478c61dd1bb7d5b166fc5de91de12d"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"15fca03711338dea45971c9ce74e88e9dd24b13a","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        UniqueConstraint(\u0027image_id\u0027,"},{"line_number":56,"context_line":"                         name\u003d\u0027image_members_image_id_key\u0027,"},{"line_number":57,"context_line":"                         table\u003dimage_members).drop()"},{"line_number":58,"context_line":"        UniqueConstraint(\u0027image_id\u0027,"},{"line_number":59,"context_line":"                         \u0027member\u0027,"},{"line_number":60,"context_line":"                         table\u003dimage_members).create()"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FikE%3D","line":58,"updated":"2013-01-16 21:04:30.000000000","message":"Same goes here - can you explicitly name this new constraint?","commit_id":"ec9ae722b1478c61dd1bb7d5b166fc5de91de12d"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"15fca03711338dea45971c9ce74e88e9dd24b13a","unresolved":false,"context_lines":[{"line_number":69,"context_line":"def _sanitize(table):"},{"line_number":70,"context_line":"    # avoid possible integrity error by removing deleted rows"},{"line_number":71,"context_line":"    # to accommdate less restrictive uniqueness constraint"},{"line_number":72,"context_line":"    d \u003d table.delete(table.c.deleted \u003d\u003d True)"},{"line_number":73,"context_line":"    d.execute()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2Fik4%3D","line":72,"updated":"2013-01-16 21:04:30.000000000","message":"This is a little worrisome. Could we not limit data loss to those rows that we absolutely have to remove?","commit_id":"ec9ae722b1478c61dd1bb7d5b166fc5de91de12d"}]}
