)]}'
{"nova/db/sqlalchemy/migrate_repo/versions/275_add_allocated_in_quotas.py":[{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"6e37da9edb27f5dfe6b2d8648f413432a73457ad","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from sqlalchemy import Column"},{"line_number":16,"context_line":"from sqlalchemy import Integer"},{"line_number":17,"context_line":"from sqlalchemy import MetaData"},{"line_number":18,"context_line":"from sqlalchemy import Table"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"def upgrade(migrate_engine):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_0ddf306a","line":18,"updated":"2015-05-04 18:16:47.000000000","message":"why don\u0027t you just:\n\nfrom sqlalchemy import Column, Integer, MetaData, Table","commit_id":"1bb95d838d5415258ff9edae77aa02a7dd7651d5"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"6e37da9edb27f5dfe6b2d8648f413432a73457ad","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    meta \u003d MetaData()"},{"line_number":23,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    # Add a new column metrics to save metrics info for compute nodes"},{"line_number":26,"context_line":"    quotas \u003d Table(\u0027quotas\u0027, meta, autoload\u003dTrue)"},{"line_number":27,"context_line":"    shadow_quotas \u003d Table(\u0027shadow_quotas\u0027, meta, autoload\u003dTrue)"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_8dbb40e5","line":25,"updated":"2015-05-04 18:16:47.000000000","message":"Where is the column \"metrics\"? Or are you talking about \"allocated\"?","commit_id":"1bb95d838d5415258ff9edae77aa02a7dd7651d5"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"6e37da9edb27f5dfe6b2d8648f413432a73457ad","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    # Add a new column metrics to save metrics info for compute nodes"},{"line_number":26,"context_line":"    quotas \u003d Table(\u0027quotas\u0027, meta, autoload\u003dTrue)"},{"line_number":27,"context_line":"    shadow_quotas \u003d Table(\u0027shadow_quotas\u0027, meta, autoload\u003dTrue)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    allocated \u003d Column(\u0027allocated\u0027, Integer, default\u003d0)"},{"line_number":30,"context_line":"    shadow_allocated \u003d Column(\u0027allocated\u0027, Integer, default\u003d0)"},{"line_number":31,"context_line":"    quotas.create_column(allocated)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_edcab46d","line":28,"updated":"2015-05-04 18:16:47.000000000","message":"Maybe the comment above should be here.","commit_id":"1bb95d838d5415258ff9edae77aa02a7dd7651d5"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"6e37da9edb27f5dfe6b2d8648f413432a73457ad","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    shadow_quotas.create_column(shadow_allocated)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"def downgrade(migrate_engine):"},{"line_number":36,"context_line":"    meta \u003d MetaData()"},{"line_number":37,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_4d0ac822","line":35,"updated":"2015-05-04 18:16:47.000000000","message":"I think the downgrade is not necessary anymore, since: https://github.com/openstack/openstack-specs/blob/master/specs/no-downward-sql-migration.rst","commit_id":"1bb95d838d5415258ff9edae77aa02a7dd7651d5"}],"nova/db/sqlalchemy/migrate_repo/versions/298_add_allocated_in_quotas.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"c65bb5848c8a999a3085c541a59de81b39698639","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013 Intel Corporation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a50d1a3_c61aba17","line":1,"updated":"2015-07-20 12:43:55.000000000","message":"should remove this","commit_id":"9ead8cf884ed3424f6865227f299f1476cf75fe9"}],"nova/db/sqlalchemy/migrate_repo/versions/299_add_allocated_in_quotas.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"028daba72274e4940592243032914c58a62aeceb","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"def upgrade(migrate_engine):"},{"line_number":20,"context_line":"    meta \u003d MetaData()"},{"line_number":21,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":22,"context_line":"    quotas \u003d Table(\u0027quotas\u0027, meta, autoload\u003dTrue)"},{"line_number":23,"context_line":"    shadow_quotas \u003d Table(\u0027shadow_quotas\u0027, meta, autoload\u003dTrue)"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_8cdf5ed5","line":21,"range":{"start_line":20,"start_character":4,"end_line":21,"end_character":30},"updated":"2015-07-28 21:42:11.000000000","message":"Suggestion: other code is see does this on one line\n\n meta \u003d MetaData(bind\u003dmigrate_engine)","commit_id":"87f6da4d0b26660c8c0f4b04872569864bbbb08c"}],"nova/db/sqlalchemy/models.py":[{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"6e37da9edb27f5dfe6b2d8648f413432a73457ad","unresolved":false,"context_lines":[{"line_number":468,"context_line":"    allocated \u003d Column(Integer)"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"    def __init__(self):"},{"line_number":471,"context_line":"        self.allocated \u003d 0"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":""},{"line_number":474,"context_line":"class ProjectUserQuota(BASE, NovaBase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_cd4ff8bb","line":471,"updated":"2015-05-04 18:16:47.000000000","message":"Is this __init__ really necessary?\n\nMaybe we can put the default value of allocated attribute in the column definition above, like:\n\nallocated \u003d Column(Integer, default\u003d0)","commit_id":"1bb95d838d5415258ff9edae77aa02a7dd7651d5"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"e15684631b8fd3ca16ea8218aa5bc119eed96c28","unresolved":false,"context_lines":[{"line_number":422,"context_line":"    allocated \u003d Column(Integer)"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    def __init__(self):"},{"line_number":425,"context_line":"        self.allocated \u003d 0"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"class ProjectUserQuota(BASE, NovaBase):"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a0c5dc1_847c6e73","line":425,"updated":"2015-05-13 00:42:24.000000000","message":"I still don\u0027t know why we have to override the __init__ here. Can\u0027t we just set default value to 0 like \"allocated \u003d Column(Integer, default\u003d0)\" ?","commit_id":"4342217230dbca7e8d0160a44669f789c377cb61"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"7658a43581e2bd934715056527b5ab27ef0e7806","unresolved":false,"context_lines":[{"line_number":420,"context_line":""},{"line_number":421,"context_line":"    resource \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":422,"context_line":"    hard_limit \u003d Column(Integer)"},{"line_number":423,"context_line":"    allocated \u003d Column(Integer, default\u003d0)"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"class ProjectUserQuota(BASE, NovaBase):"}],"source_content_type":"text/x-python","patch_set":15,"id":"fa32b979_32538ee3","line":423,"updated":"2015-06-15 13:46:58.000000000","message":"maybe add a comment to explain why the default is 0","commit_id":"068a5f647f596b2163eec314cd903c273d129447"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f287b09df79f11a2c55ef0c9f28a04cda7a15837","unresolved":false,"context_lines":[{"line_number":420,"context_line":""},{"line_number":421,"context_line":"    resource \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":422,"context_line":"    hard_limit \u003d Column(Integer)"},{"line_number":423,"context_line":"    allocated \u003d Column(Integer, default\u003d0)"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"class ProjectUserQuota(BASE, NovaBase):"}],"source_content_type":"text/x-python","patch_set":15,"id":"fa32b979_b2031e73","line":423,"in_reply_to":"fa32b979_32538ee3","updated":"2015-06-15 13:51:35.000000000","message":"where will this be used? any reason why this is not addressed via the DB api here?","commit_id":"068a5f647f596b2163eec314cd903c273d129447"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"968645604f6ad67d166d6e213f0367c8e14442b5","unresolved":false,"context_lines":[{"line_number":443,"context_line":"    resource \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":444,"context_line":"    hard_limit \u003d Column(Integer)"},{"line_number":445,"context_line":"    # allocated is the sum of the quota hard_limit values of immediate child"},{"line_number":446,"context_line":"    # projects. It defaults to 0, since a new project has no children."},{"line_number":447,"context_line":"    allocated \u003d Column(Integer, default\u003d0)"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"fa32b979_dadcd476","line":446,"updated":"2015-06-19 17:01:08.000000000","message":"Isn\u0027t this supposed to be on Quota class?","commit_id":"1e129634f61ba5e0b67c1cabb24e2cea4dc21d88"},{"author":{"_account_id":11057,"name":"sajeesh cs","email":"sajeesh.cs@cern.ch","username":"sajeeshcs"},"change_message_id":"c671e6da522009816c3172b44900501a910208d5","unresolved":false,"context_lines":[{"line_number":443,"context_line":"    resource \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":444,"context_line":"    hard_limit \u003d Column(Integer)"},{"line_number":445,"context_line":"    # allocated is the sum of the quota hard_limit values of immediate child"},{"line_number":446,"context_line":"    # projects. It defaults to 0, since a new project has no children."},{"line_number":447,"context_line":"    allocated \u003d Column(Integer, default\u003d0)"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"fa32b979_30af1f96","line":446,"in_reply_to":"fa32b979_dadcd476","updated":"2015-06-19 18:09:54.000000000","message":"The allocated quota of a project remains zero, before any quota is allocated to its child projects, no matter whatever be the quota class.","commit_id":"1e129634f61ba5e0b67c1cabb24e2cea4dc21d88"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"c65bb5848c8a999a3085c541a59de81b39698639","unresolved":false,"context_lines":[{"line_number":424,"context_line":""},{"line_number":425,"context_line":"    # allocated is the sum of the quota hard_limit values of immediate child"},{"line_number":426,"context_line":"    # projects. It defaults to 0, since it will be zero till the parent project"},{"line_number":427,"context_line":"    # allocated a finite quota to its immediate child projects"},{"line_number":428,"context_line":"    allocated \u003d Column(Integer, default\u003d0)"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"3a50d1a3_a6bf6ecf","line":427,"updated":"2015-07-20 12:43:55.000000000","message":"needs to be rephrased:\n  ... the parent project allocates a finite quota to its child projects.","commit_id":"9ead8cf884ed3424f6865227f299f1476cf75fe9"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"c65bb5848c8a999a3085c541a59de81b39698639","unresolved":false,"context_lines":[{"line_number":425,"context_line":"    # allocated is the sum of the quota hard_limit values of immediate child"},{"line_number":426,"context_line":"    # projects. It defaults to 0, since it will be zero till the parent project"},{"line_number":427,"context_line":"    # allocated a finite quota to its immediate child projects"},{"line_number":428,"context_line":"    allocated \u003d Column(Integer, default\u003d0)"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"class ProjectUserQuota(BASE, NovaBase):"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a50d1a3_c69f1a5e","line":428,"updated":"2015-07-20 12:43:55.000000000","message":"also, the information in the comments are only true in the next patchset (the ones that sets everything to 0)","commit_id":"9ead8cf884ed3424f6865227f299f1476cf75fe9"}],"nova/tests/unit/db/test_migrations.py":[{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"6e37da9edb27f5dfe6b2d8648f413432a73457ad","unresolved":false,"context_lines":[{"line_number":760,"context_line":""},{"line_number":761,"context_line":"    def _check_275(self, engine, data):"},{"line_number":762,"context_line":"        self.assertColumnExists(engine, \u0027quotas\u0027, \u0027allocated\u0027)"},{"line_number":763,"context_line":"        self.assertColumnExists(engine, \u0027shadow_quotas\u0027, \u0027allocated\u0027)"},{"line_number":764,"context_line":""},{"line_number":765,"context_line":"    def _post_downgrade_275(self, engine):"},{"line_number":766,"context_line":"        self.assertColumnNotExists(engine, \u0027quotas\u0027, \u0027allocated\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_083cbec6","line":763,"updated":"2015-05-04 18:16:47.000000000","message":"Could test the column type, also, to check if it is Integer.","commit_id":"1bb95d838d5415258ff9edae77aa02a7dd7651d5"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"6e37da9edb27f5dfe6b2d8648f413432a73457ad","unresolved":false,"context_lines":[{"line_number":762,"context_line":"        self.assertColumnExists(engine, \u0027quotas\u0027, \u0027allocated\u0027)"},{"line_number":763,"context_line":"        self.assertColumnExists(engine, \u0027shadow_quotas\u0027, \u0027allocated\u0027)"},{"line_number":764,"context_line":""},{"line_number":765,"context_line":"    def _post_downgrade_275(self, engine):"},{"line_number":766,"context_line":"        self.assertColumnNotExists(engine, \u0027quotas\u0027, \u0027allocated\u0027)"},{"line_number":767,"context_line":"        self.assertColumnNotExists(engine, \u0027shadow_quotas\u0027, \u0027allocated\u0027)"},{"line_number":768,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_0db29094","line":765,"updated":"2015-05-04 18:16:47.000000000","message":"The downgrade method does not need to be tested anymore: https://github.com/openstack/openstack-specs/blob/master/specs/no-downward-sql-migration.rst","commit_id":"1bb95d838d5415258ff9edae77aa02a7dd7651d5"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"e15684631b8fd3ca16ea8218aa5bc119eed96c28","unresolved":false,"context_lines":[{"line_number":684,"context_line":"        self.assertColumnExists(engine, \u0027quotas\u0027, \u0027allocated\u0027)"},{"line_number":685,"context_line":"        self.assertColumnExists(engine, \u0027shadow_quotas\u0027, \u0027allocated\u0027)"},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"    def _post_downgrade_275(self, engine):"},{"line_number":688,"context_line":"        self.assertColumnNotExists(engine, \u0027quotas\u0027, \u0027allocated\u0027)"},{"line_number":689,"context_line":"        self.assertColumnNotExists(engine, \u0027shadow_quotas\u0027, \u0027allocated\u0027)"},{"line_number":690,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"9a0c5dc1_c44dc673","line":687,"updated":"2015-05-13 00:42:24.000000000","message":"The test name should be _post_downgrade_293 and not post_downgrade_275, right?\n\nbut, imo this downgrade test isn\u0027t supposed to exist, since we don\u0027t have downgrade method in migrations scripts anymore.","commit_id":"4342217230dbca7e8d0160a44669f789c377cb61"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"968645604f6ad67d166d6e213f0367c8e14442b5","unresolved":false,"context_lines":[{"line_number":787,"context_line":"        helpful_msg \u003d (\"The following migrations have a downgrade \""},{"line_number":788,"context_line":"                       \"which is not supported:\""},{"line_number":789,"context_line":"                       \"\\n\\t%s\" % \u0027\\n\\t\u0027.join(sorted(includes_downgrade)))"},{"line_number":790,"context_line":"        self.assertFalse(includes_downgrade, helpful_msg)"}],"source_content_type":"text/x-python","patch_set":17,"id":"fa32b979_3aa940e0","line":790,"updated":"2015-06-19 17:01:08.000000000","message":"Why did you remove all this code? Isn\u0027t it an unrelated change?","commit_id":"1e129634f61ba5e0b67c1cabb24e2cea4dc21d88"},{"author":{"_account_id":11057,"name":"sajeesh cs","email":"sajeesh.cs@cern.ch","username":"sajeeshcs"},"change_message_id":"c671e6da522009816c3172b44900501a910208d5","unresolved":false,"context_lines":[{"line_number":787,"context_line":"        helpful_msg \u003d (\"The following migrations have a downgrade \""},{"line_number":788,"context_line":"                       \"which is not supported:\""},{"line_number":789,"context_line":"                       \"\\n\\t%s\" % \u0027\\n\\t\u0027.join(sorted(includes_downgrade)))"},{"line_number":790,"context_line":"        self.assertFalse(includes_downgrade, helpful_msg)"}],"source_content_type":"text/x-python","patch_set":17,"id":"fa32b979_4b7314b5","line":790,"in_reply_to":"fa32b979_3aa940e0","updated":"2015-06-19 18:09:54.000000000","message":"I didn\u0027t remove it. It is unrelated","commit_id":"1e129634f61ba5e0b67c1cabb24e2cea4dc21d88"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"a3c26b33eb5486ab9a8c2b2624aad46c45b7b9fe","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                                     (\u0027DB Migration %i does not have a \u0027"},{"line_number":190,"context_line":"                                      \u0027test. Please add one!\u0027) % version)"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        # NOTE(danms): This is a list of migrations where we allow dropping"},{"line_number":193,"context_line":"        # things. The rules for adding things here are very very specific."},{"line_number":194,"context_line":"        # Chances are you don\u0027t meet the critera."},{"line_number":195,"context_line":"        # Reviewers: DO NOT ALLOW THINGS TO BE ADDED HERE"}],"source_content_type":"text/x-python","patch_set":19,"id":"ba3cc151_10f8d0c3","line":192,"updated":"2015-07-10 15:43:03.000000000","message":"I think it is an unrelated change due to a wrong rebase.","commit_id":"549564eab51cf81fff486bc907a8a375ce0e7884"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"028daba72274e4940592243032914c58a62aeceb","unresolved":false,"context_lines":[{"line_number":765,"context_line":"        # NOTE(nic): This is a MySQL-specific migration, and is a no-op from"},{"line_number":766,"context_line":"        # the point-of-view of unit tests, since they use SQLite"},{"line_number":767,"context_line":"        pass"},{"line_number":768,"context_line":""},{"line_number":769,"context_line":"    def _check_299(self, engine, data):"},{"line_number":770,"context_line":"        self.assertColumnExists(engine, \u0027quotas\u0027, \u0027allocated\u0027)"},{"line_number":771,"context_line":"        self.assertColumnExists(engine, \u0027shadow_quotas\u0027, \u0027allocated\u0027)"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_2c2c0a01","line":768,"updated":"2015-07-28 21:42:11.000000000","message":"Based on other tests, I think we should test that allocated gets created with default value of 0 by adding a _pre_upgrade_299 function similar to _pre_upgrade_275 and _check_275. Create a quota record and verify the default value 0","commit_id":"87f6da4d0b26660c8c0f4b04872569864bbbb08c"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"7cbdfa2012a7421a468de1891cf4225805d91e37","unresolved":false,"context_lines":[{"line_number":765,"context_line":"        # NOTE(nic): This is a MySQL-specific migration, and is a no-op from"},{"line_number":766,"context_line":"        # the point-of-view of unit tests, since they use SQLite"},{"line_number":767,"context_line":"        pass"},{"line_number":768,"context_line":""},{"line_number":769,"context_line":"    def _check_299(self, engine, data):"},{"line_number":770,"context_line":"        self.assertColumnExists(engine, \u0027quotas\u0027, \u0027allocated\u0027)"},{"line_number":771,"context_line":"        self.assertColumnExists(engine, \u0027shadow_quotas\u0027, \u0027allocated\u0027)"}],"source_content_type":"text/x-python","patch_set":31,"id":"3a50d1a3_1e2d7efd","line":768,"in_reply_to":"3a50d1a3_2c2c0a01","updated":"2015-07-29 16:13:02.000000000","message":"++","commit_id":"87f6da4d0b26660c8c0f4b04872569864bbbb08c"}]}
