)]}'
{"nova/db/sqlalchemy/api_models.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ad41ac611189b45a217210ec4f9f5d9da33fcc90","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    name \u003d Column(String(255))"},{"line_number":49,"context_line":"    transport_url \u003d Column(Text())"},{"line_number":50,"context_line":"    database_connection \u003d Column(Text())"},{"line_number":51,"context_line":"    host_mapping \u003d orm.relationship(\u0027HostMapping\u0027,"},{"line_number":52,"context_line":"                            backref\u003dbackref(\u0027cell_mapping\u0027, uselist\u003dFalse),"},{"line_number":53,"context_line":"                            foreign_keys\u003did,"},{"line_number":54,"context_line":"                            primaryjoin\u003d("}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_cae45fad","line":51,"updated":"2016-03-18 22:20:31.000000000","message":"I think this is backwards from the way we normally do this, which is to put the relationship on the object t hat has the FK to this one, but I\u0027m not sure why or if it matters.","commit_id":"d3fe322129b928549ee2af1fb11a032a0ea94864"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b11a3276cf998216abff0098214c4e44049c45e6","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    name \u003d Column(String(255))"},{"line_number":49,"context_line":"    transport_url \u003d Column(Text())"},{"line_number":50,"context_line":"    database_connection \u003d Column(Text())"},{"line_number":51,"context_line":"    host_mapping \u003d orm.relationship(\u0027HostMapping\u0027,"},{"line_number":52,"context_line":"                            backref\u003dbackref(\u0027cell_mapping\u0027, uselist\u003dFalse),"},{"line_number":53,"context_line":"                            foreign_keys\u003did,"},{"line_number":54,"context_line":"                            primaryjoin\u003d("}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_a6c78762","line":51,"in_reply_to":"1af94dfe_530ac326","updated":"2016-03-19 13:31:53.000000000","message":"Actually, I ran into something late yesterday with my Flavor stuff that indicated that the relationship might need to be created the other way (i.e. the way you have it here) in order to properly cascade deletes with FKs. Basically, the thing you\u0027re deleting has to be the one that you delete from. So right now, flavor has no relationships, but FlavorProjects and FlavorExtraSpecs do. If I want to delete based on flavor, I might need to move those to Flavor.\n\nHaven\u0027t tried yet, but if so, you probably want to leave these :)","commit_id":"d3fe322129b928549ee2af1fb11a032a0ea94864"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"dc5e82c1bb4ab703efeee4681946a81e7ccc9f24","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    name \u003d Column(String(255))"},{"line_number":49,"context_line":"    transport_url \u003d Column(Text())"},{"line_number":50,"context_line":"    database_connection \u003d Column(Text())"},{"line_number":51,"context_line":"    host_mapping \u003d orm.relationship(\u0027HostMapping\u0027,"},{"line_number":52,"context_line":"                            backref\u003dbackref(\u0027cell_mapping\u0027, uselist\u003dFalse),"},{"line_number":53,"context_line":"                            foreign_keys\u003did,"},{"line_number":54,"context_line":"                            primaryjoin\u003d("}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_530ac326","line":51,"in_reply_to":"1af94dfe_cae45fad","updated":"2016-03-19 11:58:14.000000000","message":"Hmm, I thought I was being consistent but this was late Friday coding and I surely could have been mistaken. It shouldn\u0027t matter because backref creates the relationship both ways but I may update this to be consistent.","commit_id":"d3fe322129b928549ee2af1fb11a032a0ea94864"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ad41ac611189b45a217210ec4f9f5d9da33fcc90","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                    back_populates\u003d\u0027request_spec\u0027,"},{"line_number":101,"context_line":"                    uselist\u003dFalse,"},{"line_number":102,"context_line":"                    primaryjoin\u003d("},{"line_number":103,"context_line":"                        \u0027RequestSpec.id \u003d\u003d BuildRequest.request_spec_id\u0027))"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"class Flavors(API_BASE):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_0af1276b","line":103,"updated":"2016-03-18 22:20:31.000000000","message":"Here as well.","commit_id":"d3fe322129b928549ee2af1fb11a032a0ea94864"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"dc5e82c1bb4ab703efeee4681946a81e7ccc9f24","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                    back_populates\u003d\u0027request_spec\u0027,"},{"line_number":101,"context_line":"                    uselist\u003dFalse,"},{"line_number":102,"context_line":"                    primaryjoin\u003d("},{"line_number":103,"context_line":"                        \u0027RequestSpec.id \u003d\u003d BuildRequest.request_spec_id\u0027))"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"class Flavors(API_BASE):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_9300cb03","line":103,"in_reply_to":"1af94dfe_0af1276b","updated":"2016-03-19 11:58:14.000000000","message":"On this one the relationship is already defined on BuildRequest which is why this uses backpopulates. So the right thing to do might be leaving this off and add a backref parameter below.","commit_id":"d3fe322129b928549ee2af1fb11a032a0ea94864"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ad41ac611189b45a217210ec4f9f5d9da33fcc90","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    flavor \u003d orm.relationship(Flavors, backref\u003d\u0027extra_specs\u0027,"},{"line_number":142,"context_line":"                              foreign_keys\u003dflavor_id,"},{"line_number":143,"context_line":"                              primaryjoin\u003d("},{"line_number":144,"context_line":"                                  \u0027FlavorExtraSpecs.flavor_id \u003d\u003d Flavors.id\u0027))"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"class FlavorProjects(API_BASE):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1af94dfe_4ae7afab","line":144,"updated":"2016-03-18 22:20:31.000000000","message":"This is how I\u0027m used to doing it.","commit_id":"d3fe322129b928549ee2af1fb11a032a0ea94864"}]}
