Question: When upgrading to Django 1.8 (with zc.buildout) and running syncdb or migrate, I get this message:

`django.db.utils.ProgrammingError: relation "auth_user" does not exist`

One of my models contains django.contrib.auth.models.User:

```
user = models.ForeignKey(
    User, related_name='%(app_label)s_%(class)s_user',
    blank=True, null=True, editable=False
)

```

Downgrading to Django 1.7 removes the error. Do I have to include the User object differently in Django 1.8?

Answer: 
This problem is contained by running "makemigrations" for all apps, that have not yet been migrated, i.e. apps that do not yet have an "initial\_0001.py" file in their migrations directory.

This is done (in our case we use a makefile) by running for each of these apps:

```
manage.py makemigrations app_name

```

Once that is done, you can execute:

```
manage.py migrate

```

as usual.

The underlying cause for this is that for some reason

```
manage.py makemigrations

```

does *not* always create these initial migrations if they are not already there. And that leads to the mentioned error. 

On the contrary,

```
manage.py makemigrations app_name

```

*does* always create them (if not already there). Unfortunately I cannot fathom the reasons for this asymmetry.
I've migrated an old Django 1.6 project to Django 1.8 and previously we've used syncdb to migrate the database and we did **not have initial migration steps** for all apps in our project. With Django 1.8, you'll need a working database migrations. Running 

```
manage.py makemigrations <app_name>

```

for all apps in our project fixed our problems.