)]}'
{"ceilometer/storage/sqlalchemy/models.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d464ec21a0b43ac5de0609100361065289a5221b","unresolved":false,"context_lines":[{"line_number":348,"context_line":"    __tablename__ \u003d \u0027trait_type\u0027"},{"line_number":349,"context_line":"    __table_args__ \u003d ("},{"line_number":350,"context_line":"        UniqueConstraint(\u0027desc\u0027, \u0027data_type\u0027, name\u003d\u0027tt_unique\u0027),"},{"line_number":351,"context_line":"        Index(\u0027ix_trait_type\u0027, \u0027desc\u0027)"},{"line_number":352,"context_line":"    )"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    id \u003d Column(Integer, primary_key\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2BJ5A%3D","side":"PARENT","line":351,"updated":"2014-01-29 16:35:58.000000000","message":"Reason for removing above?","commit_id":"0353900bfd65f3514b0c0e47ed2ad4c785f64fee"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"29bcb09a283647e92b847c8ecd0f49c3a3735453","unresolved":false,"context_lines":[{"line_number":348,"context_line":"    __tablename__ \u003d \u0027trait_type\u0027"},{"line_number":349,"context_line":"    __table_args__ \u003d ("},{"line_number":350,"context_line":"        UniqueConstraint(\u0027desc\u0027, \u0027data_type\u0027, name\u003d\u0027tt_unique\u0027),"},{"line_number":351,"context_line":"        Index(\u0027ix_trait_type\u0027, \u0027desc\u0027)"},{"line_number":352,"context_line":"    )"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    id \u003d Column(Integer, primary_key\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F91h8%3D","side":"PARENT","line":351,"in_reply_to":"AAAAUH%2F%2BJ5A%3D","updated":"2014-02-03 13:56:30.000000000","message":"missed in DB","commit_id":"0353900bfd65f3514b0c0e47ed2ad4c785f64fee"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d464ec21a0b43ac5de0609100361065289a5221b","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    __tablename__ \u003d \u0027metadata_bool\u0027"},{"line_number":161,"context_line":"    __table_args__ \u003d ("},{"line_number":162,"context_line":"        Index(u\u0027ix_metadata_bool_meta_key\u0027, \u0027meta_key\u0027),"},{"line_number":163,"context_line":"    )"},{"line_number":164,"context_line":"    id \u003d Column(Integer, ForeignKey(\u0027meter.id\u0027), primary_key\u003dTrue)"},{"line_number":165,"context_line":"    meta_key \u003d Column(String(255), primary_key\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2BJ7c%3D","line":162,"updated":"2014-01-29 16:35:58.000000000","message":"Any reason unicode for above ix_metadata_bool_meta_key string but not on line 149 above?","commit_id":"8ca6d9d87d8439bccf0b0d8beb29f4fbd2b8f16f"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"29bcb09a283647e92b847c8ecd0f49c3a3735453","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    __tablename__ \u003d \u0027metadata_bool\u0027"},{"line_number":161,"context_line":"    __table_args__ \u003d ("},{"line_number":162,"context_line":"        Index(u\u0027ix_metadata_bool_meta_key\u0027, \u0027meta_key\u0027),"},{"line_number":163,"context_line":"    )"},{"line_number":164,"context_line":"    id \u003d Column(Integer, ForeignKey(\u0027meter.id\u0027), primary_key\u003dTrue)"},{"line_number":165,"context_line":"    meta_key \u003d Column(String(255), primary_key\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F91jA%3D","line":162,"in_reply_to":"AAAAUH%2F%2BJ7c%3D","updated":"2014-02-03 13:56:30.000000000","message":"Fixed","commit_id":"8ca6d9d87d8439bccf0b0d8beb29f4fbd2b8f16f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d464ec21a0b43ac5de0609100361065289a5221b","unresolved":false,"context_lines":[{"line_number":175,"context_line":"    )"},{"line_number":176,"context_line":"    id \u003d Column(Integer, ForeignKey(\u0027meter.id\u0027), primary_key\u003dTrue)"},{"line_number":177,"context_line":"    meta_key \u003d Column(String(255), primary_key\u003dTrue)"},{"line_number":178,"context_line":"    value \u003d Column(BigInteger, nullable\u003dFalse)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"class MetaFloat(Base):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2BJ7E%3D","line":178,"updated":"2014-01-29 16:35:58.000000000","message":"nullable\u003dFalse is the default... you could probably just delete the default\u003dFalse","commit_id":"8ca6d9d87d8439bccf0b0d8beb29f4fbd2b8f16f"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"29bcb09a283647e92b847c8ecd0f49c3a3735453","unresolved":false,"context_lines":[{"line_number":175,"context_line":"    )"},{"line_number":176,"context_line":"    id \u003d Column(Integer, ForeignKey(\u0027meter.id\u0027), primary_key\u003dTrue)"},{"line_number":177,"context_line":"    meta_key \u003d Column(String(255), primary_key\u003dTrue)"},{"line_number":178,"context_line":"    value \u003d Column(BigInteger, nullable\u003dFalse)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"class MetaFloat(Base):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F91i8%3D","line":178,"in_reply_to":"AAAAUH%2F%2BJ7E%3D","updated":"2014-02-03 13:56:30.000000000","message":"Nullable is True by default\nhttp://docs.sqlalchemy.org/en/rel_0_8/core/metadata.html#sqlalchemy.schema.Column.__init__.params.nullable","commit_id":"8ca6d9d87d8439bccf0b0d8beb29f4fbd2b8f16f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d7a1f873ecf20638bf2fba16a7bb661cd7f312a7","unresolved":false,"context_lines":[{"line_number":175,"context_line":"    )"},{"line_number":176,"context_line":"    id \u003d Column(Integer, ForeignKey(\u0027meter.id\u0027), primary_key\u003dTrue)"},{"line_number":177,"context_line":"    meta_key \u003d Column(String(255), primary_key\u003dTrue)"},{"line_number":178,"context_line":"    value \u003d Column(BigInteger, nullable\u003dFalse)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"class MetaFloat(Base):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F90gY%3D","line":178,"in_reply_to":"AAAAUH%2F91i8%3D","updated":"2014-02-03 16:39:28.000000000","message":"Apologies. You are absolutely correct.","commit_id":"8ca6d9d87d8439bccf0b0d8beb29f4fbd2b8f16f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d464ec21a0b43ac5de0609100361065289a5221b","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    )"},{"line_number":188,"context_line":"    id \u003d Column(Integer, ForeignKey(\u0027meter.id\u0027), primary_key\u003dTrue)"},{"line_number":189,"context_line":"    meta_key \u003d Column(String(255), primary_key\u003dTrue)"},{"line_number":190,"context_line":"    value \u003d Column(Float(53), nullable\u003dFalse)"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"class Meter(Base):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2BJ60%3D","line":190,"updated":"2014-01-29 16:35:58.000000000","message":"Same here...","commit_id":"8ca6d9d87d8439bccf0b0d8beb29f4fbd2b8f16f"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"29bcb09a283647e92b847c8ecd0f49c3a3735453","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    )"},{"line_number":188,"context_line":"    id \u003d Column(Integer, ForeignKey(\u0027meter.id\u0027), primary_key\u003dTrue)"},{"line_number":189,"context_line":"    meta_key \u003d Column(String(255), primary_key\u003dTrue)"},{"line_number":190,"context_line":"    value \u003d Column(Float(53), nullable\u003dFalse)"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"class Meter(Base):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F91h4%3D","line":190,"in_reply_to":"AAAAUH%2F%2BJ60%3D","updated":"2014-02-03 13:56:30.000000000","message":"ditto","commit_id":"8ca6d9d87d8439bccf0b0d8beb29f4fbd2b8f16f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d464ec21a0b43ac5de0609100361065289a5221b","unresolved":false,"context_lines":[{"line_number":288,"context_line":"    __table_args__ \u003d ("},{"line_number":289,"context_line":"        Index(\u0027ix_alarm_history_alarm_id\u0027, \u0027alarm_id\u0027),"},{"line_number":290,"context_line":"        Index(\u0027ix_alarm_history_project_id\u0027, \u0027project_id\u0027),"},{"line_number":291,"context_line":"        Index(\u0027ix_alarm_history_on_user_id\u0027, \u0027user_id\u0027),"},{"line_number":292,"context_line":"        Index(\u0027ix_alarm_history_event_id\u0027, \u0027event_id\u0027),"},{"line_number":293,"context_line":"        Index(\u0027ix_alarm_history_on_behalf_of\u0027, \u0027on_behalf_of\u0027),"},{"line_number":294,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2BJ6E%3D","line":291,"updated":"2014-01-29 16:35:58.000000000","message":"Unless I am mistaken the above should be ix_alarm_history_user_id, not ix_alarm_history_on_user_id","commit_id":"8ca6d9d87d8439bccf0b0d8beb29f4fbd2b8f16f"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"29bcb09a283647e92b847c8ecd0f49c3a3735453","unresolved":false,"context_lines":[{"line_number":288,"context_line":"    __table_args__ \u003d ("},{"line_number":289,"context_line":"        Index(\u0027ix_alarm_history_alarm_id\u0027, \u0027alarm_id\u0027),"},{"line_number":290,"context_line":"        Index(\u0027ix_alarm_history_project_id\u0027, \u0027project_id\u0027),"},{"line_number":291,"context_line":"        Index(\u0027ix_alarm_history_on_user_id\u0027, \u0027user_id\u0027),"},{"line_number":292,"context_line":"        Index(\u0027ix_alarm_history_event_id\u0027, \u0027event_id\u0027),"},{"line_number":293,"context_line":"        Index(\u0027ix_alarm_history_on_behalf_of\u0027, \u0027on_behalf_of\u0027),"},{"line_number":294,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F91ic%3D","line":291,"in_reply_to":"AAAAUH%2F%2BJ6E%3D","updated":"2014-02-03 13:56:30.000000000","message":"it is real index name in database. If we suppose to fix it, we should od it in another patch","commit_id":"8ca6d9d87d8439bccf0b0d8beb29f4fbd2b8f16f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d464ec21a0b43ac5de0609100361065289a5221b","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        Index(\u0027idx_event_message_id\u0027, \u0027message_id\u0027)"},{"line_number":324,"context_line":"    )"},{"line_number":325,"context_line":"    id \u003d Column(Integer, primary_key\u003dTrue)"},{"line_number":326,"context_line":"    message_id \u003d Column(String(50))"},{"line_number":327,"context_line":"    generated \u003d Column(PreciseTimestamp())"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    event_type_id \u003d Column(Integer, ForeignKey(\u0027event_type.id\u0027))"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2BJ5I%3D","line":326,"updated":"2014-01-29 16:35:58.000000000","message":"You removed the unique constraint on message_id. You will want to restore it by changing line 323 above to:\n\nUniqueConstraint(\u0027message_id\u0027, name\u003d\u0027uc_event0message_id\u0027)\n\nI *think* that is the correct unique constraint naming convention... double check with Boris P about that :)","commit_id":"8ca6d9d87d8439bccf0b0d8beb29f4fbd2b8f16f"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"29bcb09a283647e92b847c8ecd0f49c3a3735453","unresolved":false,"context_lines":[{"line_number":323,"context_line":"        Index(\u0027idx_event_message_id\u0027, \u0027message_id\u0027)"},{"line_number":324,"context_line":"    )"},{"line_number":325,"context_line":"    id \u003d Column(Integer, primary_key\u003dTrue)"},{"line_number":326,"context_line":"    message_id \u003d Column(String(50))"},{"line_number":327,"context_line":"    generated \u003d Column(PreciseTimestamp())"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    event_type_id \u003d Column(Integer, ForeignKey(\u0027event_type.id\u0027))"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F91iE%3D","line":326,"in_reply_to":"AAAAUH%2F%2BJ5I%3D","updated":"2014-02-03 13:56:30.000000000","message":"Yes, you right, but seems to be, that we have index in DB, not UC. But I\u0027ll check it one more time","commit_id":"8ca6d9d87d8439bccf0b0d8beb29f4fbd2b8f16f"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7a2a374f897a53a73c7087d8eb4fc839b02baf95","unresolved":false,"context_lines":[{"line_number":348,"context_line":"    __tablename__ \u003d \u0027trait_type\u0027"},{"line_number":349,"context_line":"    __table_args__ \u003d ("},{"line_number":350,"context_line":"        UniqueConstraint(\u0027desc\u0027, \u0027data_type\u0027, name\u003d\u0027tt_unique\u0027),"},{"line_number":351,"context_line":"        Index(\u0027ix_trait_type\u0027, \u0027desc\u0027)"},{"line_number":352,"context_line":"    )"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    id \u003d Column(Integer, primary_key\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F90fM%3D","side":"PARENT","line":351,"updated":"2014-02-03 16:41:35.000000000","message":"Sorry, I\u0027m still unclear about why this was removed... what did you mean by \"Missed in DB\"?","commit_id":"441b7bf2e910893e4c6f5ed2a0a1a2fac5f55bca"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"548f319ba5af802090c2e2dc89957e734e8502c3","unresolved":false,"context_lines":[{"line_number":348,"context_line":"    __tablename__ \u003d \u0027trait_type\u0027"},{"line_number":349,"context_line":"    __table_args__ \u003d ("},{"line_number":350,"context_line":"        UniqueConstraint(\u0027desc\u0027, \u0027data_type\u0027, name\u003d\u0027tt_unique\u0027),"},{"line_number":351,"context_line":"        Index(\u0027ix_trait_type\u0027, \u0027desc\u0027)"},{"line_number":352,"context_line":"    )"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"    id \u003d Column(Integer, primary_key\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F90X8%3D","side":"PARENT","line":351,"in_reply_to":"AAAAUH%2F90fM%3D","updated":"2014-02-03 16:54:52.000000000","message":"This index is absent in database, so we should remove it from model description","commit_id":"441b7bf2e910893e4c6f5ed2a0a1a2fac5f55bca"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"7a2a374f897a53a73c7087d8eb4fc839b02baf95","unresolved":false,"context_lines":[{"line_number":320,"context_line":"    __tablename__ \u003d \u0027event\u0027"},{"line_number":321,"context_line":"    __table_args__ \u003d ("},{"line_number":322,"context_line":"        Index(\u0027ix_event_generated\u0027, \u0027generated\u0027),"},{"line_number":323,"context_line":"        Index(\u0027idx_event_message_id\u0027, \u0027message_id\u0027)"},{"line_number":324,"context_line":"    )"},{"line_number":325,"context_line":"    id \u003d Column(Integer, primary_key\u003dTrue)"},{"line_number":326,"context_line":"    message_id \u003d Column(String(50))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F90es%3D","line":323,"updated":"2014-02-03 16:41:35.000000000","message":"s/idx/ix/, to be consistent with all other index names.","commit_id":"46ad20ac5db7d41746427ddbf58c8e84048cb528"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"548f319ba5af802090c2e2dc89957e734e8502c3","unresolved":false,"context_lines":[{"line_number":320,"context_line":"    __tablename__ \u003d \u0027event\u0027"},{"line_number":321,"context_line":"    __table_args__ \u003d ("},{"line_number":322,"context_line":"        Index(\u0027ix_event_generated\u0027, \u0027generated\u0027),"},{"line_number":323,"context_line":"        Index(\u0027idx_event_message_id\u0027, \u0027message_id\u0027)"},{"line_number":324,"context_line":"    )"},{"line_number":325,"context_line":"    id \u003d Column(Integer, primary_key\u003dTrue)"},{"line_number":326,"context_line":"    message_id \u003d Column(String(50))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F90Y4%3D","line":323,"in_reply_to":"AAAAUH%2F90es%3D","updated":"2014-02-03 16:54:52.000000000","message":"This patch sync models to actual database state. At the moment this index names \"idx_event_message_id\" in database, so we must use same name in model description","commit_id":"46ad20ac5db7d41746427ddbf58c8e84048cb528"}]}
