)]}'
{"watcher/db/sqlalchemy/alembic/versions/609bec748f2a_add_force_field.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8591c25edfbaafecd292ce857f256d55e331e5e2","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"def upgrade():"},{"line_number":18,"context_line":"    op.add_column(\u0027audits\u0027, sa.Column(\u0027force\u0027, sa.Boolean, nullable\u003dFalse))"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"def downgrade():"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfbec78f_4d66a42c","line":18,"range":{"start_line":18,"start_character":59,"end_line":18,"end_character":73},"updated":"2019-05-15 15:10:16.000000000","message":"Hmm, for existing audits records won\u0027t this be a problem since they don\u0027t have a force value? Shouldn\u0027t this be nullable\u003dTrue for that case and the column should have a default value of False?","commit_id":"479b0751d0ea016a5a384a18f544a16673bdf58e"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"8de0ae1b86c514cfc3c2e3538027e564c6b6de64","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"def upgrade():"},{"line_number":18,"context_line":"    op.add_column(\u0027audits\u0027, sa.Column(\u0027force\u0027, sa.Boolean, nullable\u003dFalse))"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"def downgrade():"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfb3d3c7_9b065f1c","line":18,"range":{"start_line":18,"start_character":59,"end_line":18,"end_character":73},"in_reply_to":"bfb3d3c7_606d4197","updated":"2019-05-24 07:06:15.000000000","message":"Done","commit_id":"479b0751d0ea016a5a384a18f544a16673bdf58e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"591118fec30d8c42b1799b35fae749a9eb3c65f7","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"def upgrade():"},{"line_number":18,"context_line":"    op.add_column(\u0027audits\u0027, sa.Column(\u0027force\u0027, sa.Boolean, nullable\u003dFalse))"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"def downgrade():"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfbec78f_cd62940a","line":18,"range":{"start_line":18,"start_character":59,"end_line":18,"end_character":73},"in_reply_to":"dfbec78f_4d66a42c","updated":"2019-05-15 15:11:21.000000000","message":"I see this doesn\u0027t fail in the grenade job:\n\nhttp://logs.openstack.org/11/657211/1/check/watcher-grenade/5bd80ae/logs/grenade.sh.txt.gz#_2019-05-06_07_12_28_638\n\nBut does the watcher-grenade job populate the audits table on the old side before running the upgrade?","commit_id":"479b0751d0ea016a5a384a18f544a16673bdf58e"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"f1ae79b7bd668e1ca8e9782cee6db2d888847b08","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"def upgrade():"},{"line_number":18,"context_line":"    op.add_column(\u0027audits\u0027, sa.Column(\u0027force\u0027, sa.Boolean, nullable\u003dFalse))"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"def downgrade():"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfbec78f_be15ff4a","line":18,"range":{"start_line":18,"start_character":59,"end_line":18,"end_character":73},"in_reply_to":"dfbec78f_6005af10","updated":"2019-05-16 06:59:12.000000000","message":"help(sa.Column) can get some explaination about nullable:\nWhen set to ``False``, will cause the \"NOT NULL\" phrase to be added when generating DDL for the column.   When  ``True``, will normally generate nothing (in SQL this defaults to \"NULL\").\nThere is no requirement to have a value when nullable\u003dFalse.\nIn fact the column has a value of zero.","commit_id":"479b0751d0ea016a5a384a18f544a16673bdf58e"},{"author":{"_account_id":29911,"name":"Dantali0n","email":"info@dantalion.nl","username":"Dantali0n"},"change_message_id":"94c5b46f8bbfee6ea2d5641a13d3cedc5c70ed90","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"def upgrade():"},{"line_number":18,"context_line":"    op.add_column(\u0027audits\u0027, sa.Column(\u0027force\u0027, sa.Boolean, nullable\u003dFalse))"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"def downgrade():"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfb3d3c7_606d4197","line":18,"range":{"start_line":18,"start_character":59,"end_line":18,"end_character":73},"in_reply_to":"dfbec78f_be15ff4a","updated":"2019-05-21 07:50:03.000000000","message":"I have analyzed how other OpenStack components implement Boolean types and most either have nullable\u003dTrue or default\u003dFalse. I think default\u003dFalse would make the most sense.","commit_id":"479b0751d0ea016a5a384a18f544a16673bdf58e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"208b42b33ac79fcd1ed6b899012ae8b348da8285","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"def upgrade():"},{"line_number":18,"context_line":"    op.add_column(\u0027audits\u0027, sa.Column(\u0027force\u0027, sa.Boolean, nullable\u003dFalse))"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"def downgrade():"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfbec78f_6005af10","line":18,"range":{"start_line":18,"start_character":59,"end_line":18,"end_character":73},"in_reply_to":"dfbec78f_cd62940a","updated":"2019-05-15 15:16:47.000000000","message":"It looks like it does:\n\nhttp://logs.openstack.org/11/657211/1/check/watcher-grenade/5bd80ae/logs/grenade_save/grenade_db.ini\n\naudit_id \u003d c31ac337-a0d6-40b0-967a-c2053bb017c9\n\nhttp://logs.openstack.org/11/657211/1/check/watcher-grenade/5bd80ae/logs/grenade.sh.txt.gz#_2019-05-06_07_14_12_651\n\nSo I\u0027m not sure how the nullable\u003dFalse is working here unless it\u0027s only for the model and not actually applied/enforced on the schema?","commit_id":"479b0751d0ea016a5a384a18f544a16673bdf58e"}]}
