title: django manual database migration
body: <p>I am preferring to manually migrate my tables in Django. Because using automated tools puts me in a place where I cannot see the impact. With impact, I mean the the time it takes the db get in synch with my models. Below is a simple example:</p>
  
  <pre><code>class User(models.Model):
     first_name = CharField(..)
  </code></pre>
  
  <p>Let's say I want to add this:</p>
  
  <pre><code>class User(models.Model):
         first_name = CharField(..)
         last_name = CharField(..)
  </code></pre>
  
  <p>I will follow the these steps in my production server:</p>
  
  <ol>
  <li>Disable site traffic.</li>
  <li>Manually connect to the your DB server, let's say MySQL and add a field to the User table named last_name (make sure it is sync with the SQL generated for the new Model, of course.)</li>
  <li>Update your model.</li>
  <li>Upload new files, restart traffic.</li>
  </ol>
  
  <p>I have two questions for this scenario:</p>
  
  <ol>
  <li>Is this a preferred/acceptable way for manual db migration in Django?</li>
  <li>If I just add a field with a specific default value to the User table by SQL manually, but don't update the model, will I still get DatabaseIntegrity exception? </li>
  </ol>
  
  <p>Thanks in advance,</p>