title: Django MySQL IntegrityError: ("Field 'created_at' doesn't have a default value")
body: <p>I am new to Django.</p>
  
  <pre><code>IntegrityError: (1364, "Field 'created_at' doesn't have a default value") 
  </code></pre>
  
  <p>occurred when I didn't write <code>created_at</code> for models I defined at models.py.</p>
  
  <p>Every time I face such error, I add</p>
  
  <p><code>created_at = models.DateTimeField(default=timezone.now, null=True)</code></p>
  
  <p>to models.py and then run <code>python manage.py makemigrations; python manage.py migrate --fake</code>. </p>
  
  <p>Is that OK? (I mean, does it follow Django best practice or not? )
  When I was using Rails, I've never faced such issues. Why doesn't Django automatically handle <code>created_at</code> column?</p>
  
  <p>Also, I'd like to know why <code>--fake</code> option removes this error. </p>
  
  <h2>version</h2>
  
  <pre><code>Django==1.11.5 
  mysqlclient==1.3.12                                                                                                                                                                                                
  Python 3.6.1
  </code></pre>
  
  <p>Thanks in advance.</p>