title: SQLALCHEMY set default False nullable True
body: <p>I have read few SQLAlchemy answers here, but I am still not clear about two scenarios.</p>
  <p>What are exactly meant by these and what is the difference between these?</p>
  <ul>
  <li><p>Setting default <code>False</code> and <code>nullable = True</code> for a column</p>
  <p><code>check = Column(Boolean, default=False, nullable=True)</code></p>
  </li>
  <li><p>Setting default <code>True</code> and <code>nullable = False</code> for a column</p>
  <p><code>check = Column(Boolean, default=True, nullable=False)</code></p>
  </li>
  </ul>
  <p>I am having confusing thoughts.</p>
  <p><strong>EDIT:</strong></p>
  <p>Here is the logic I am trying to implementing.</p>
  <pre><code>class Checking(Base):
      __tablename __ = 'Test'
      check=Column(Boolean, nullable=True)
      def __init__(self, check):
          self.check = check
      def test(self):
          if self.check:
              print(&quot;Success&quot;)
          else:
              print(&quot;Failed&quot;)
  </code></pre>
  <p>It is always working when <code>check</code> is becoming <code>False</code> i.e, printing 'Failed' but not working when <code>check</code> is becoming <code>True</code>. It is failing there.<br />
  The same is happening when the column is set to <code>default=False</code>.</p>
  <p>If I set the column to <code>default=True</code> it is working when the column is becoming <code>True</code> but failing when column is becoming <code>False</code>--means vice-versa of the above.</p>
  <p><strong>PS:</strong> This is not the actual code but it is similar to the actual one that I am trying to achieve.</p>