title: django.db.utils.OperationalError: 1005, 'Can't create table `xyz`.`#sql-600_237` (errno: 150 "Foreign key constraint is incorrectly formed")
body: <p>I am trying to add One-to-One keys into my Django app, but I always get that error when I try to "migrate" process (makemigrations works great).</p>
  
  <pre><code>  Applying xyzapp.0007_personne_extended_foreign...Traceback (most recent call last):
    File "manage.py", line 29, in &lt;module&gt;
      execute_from_command_line(sys.argv)
    File "/opt/xyz/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
  utility.execute()
    File "/opt/xyz/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 346, in execute
  self.fetch_command(subcommand).run_from_argv(self.argv)
    File "/opt/xyz/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 394, in run_from_argv
      self.execute(*args, **cmd_options)
    File "/opt/xyz/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 445, in execute
      output = self.handle(*args, **options)
    File "/opt/xyz/env/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 222, in handle
      executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial)
    File "/opt/xyz/env/local/lib/python2.7/site-packages/django/db/migrations/executor.py", line 110, in migrate
      self.apply_migration(states[migration], migration, fake=fake, fake_initial=fake_initial)
    File "/opt/xyz/env/local/lib/python2.7/site-packages/django/db/migrations/executor.py", line 148, in apply_migration
      state = migration.apply(state, schema_editor)
    File "/opt/xyz/env/local/lib/python2.7/site-packages/django/db/backends/base/schema.py", line 91, in __exit__
      self.execute(sql)
    File "/opt/xyz/env/local/lib/python2.7/site-packages/django/db/backends/base/schema.py", line 111, in execute
      cursor.execute(sql, params)
    File "/opt/xyz/env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute
      return super(CursorDebugWrapper, self).execute(sql, params)
    File "/opt/xyz/env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
      return self.cursor.execute(sql, params)
    File "/opt/xyz/env/local/lib/python2.7/site-packages/django/db/utils.py", line 98, in __exit__
  six.reraise(dj_exc_type, dj_exc_value, traceback)
    File "/opt/xyz/env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
      return self.cursor.execute(sql, params)
    File "/opt/xyz/env/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 124, in execute
      return self.cursor.execute(query, args)
    File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 226, in execute
      self.errorhandler(self, exc, value)
    File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
      raise errorvalue
  django.db.utils.OperationalError: (1005, 'Can\'t create table `xyz`.`#sql-600_297` (errno: 150 "Foreign key constraint is incorrectly formed")')
  </code></pre>
  
  <p>That's what my models looks like :</p>
  
  <pre><code>class PersonVolunteer(models.Model):
      person = models.OneToOneField(Person)
  
  class Person(models.Model):
      name = models.CharField(max_length=100)
  </code></pre>
  
  <p>And the migration process that cause the crash :</p>
  
  <p>class Migration(migrations.Migration):</p>
  
  <pre><code>dependencies = [
      ('xyzapp', '0014_member_to_person'),
  ]
  
  operations = [
      migrations.CreateModel(
          name='PersonVolunteer',
          fields=[
              ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
              ('personne', models.OneToOneField(to='xyzapp.Personne')),
          ],
      ),
  ]
  </code></pre>
  
  <p>However, all works correctly when I test it even after the migrate error. But if that error message appears during "migrate", that should not be something good happening. If there's no problem, it is possible to skip that last step which crash my migration ?</p>
  
  <p>Can someone can say me why do I get that error message and how I can resolve it ?</p>
  
  <p>Thank you very much and have a great day !</p>