django 1.8 ne parvient pas à django.db.utils.ProgrammingError: la relation “auth_user” n'existe pas
J'avais un projet de travail avec django 1.7, et maintenant je l'ai déplacé à django 1.8.
Je peux faire syncdb
et exécuter l'application avec sqlite, mais lorsque je passe de postgres, il ne parvient pas à faire syncdb:
Creating tables...
Creating table x
Creating table y
Running deferred SQL...
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "~/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
utility.execute()
File "~/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 330, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "~/venv/lib/python2.7/site-packages/django/core/management/base.py", line 390, in run_from_argv
self.execute(*args, **cmd_options)
File "~/venv/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute
output = self.handle(*args, **options)
File "~/venv/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 25, in handle
call_command("migrate", **options)
File "~/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 120, in call_command
return command.execute(*args, **defaults)
File "~/venv/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute
output = self.handle(*args, **options)
File "~/venv/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 179, in handle
created_models = self.sync_apps(connection, executor.loader.unmigrated_apps)
File "~/venv/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 317, in sync_apps
cursor.execute(statement)
File "~/venv/lib/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "~/venv/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "~/venv/lib/python2.7/site-packages/django/db/utils.py", line 97, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "~/venv/lib/python2.7/site-packages/django/db/backends/utils.py", line 62, in execute
return self.cursor.execute(sql)
django.db.utils.ProgrammingError: relation "auth_user" does not exist
J'ai essayé de supprimer la base de données et de le recréer.
Aussi, j'ai essayé:
python manage.py migrate auth
qui échoue également:
django.db.utils.ProgrammingError: relation "django_site" does not exist
LINE 1: SELECT (1) AS "a" FROM "django_site" LIMIT 1
S'il vous plaît aider la résolution de ce problème.
Et puis, si vous revenez à sqlite pour votre base de données principale et de démarrer à partir d'une base de données vide, il fonctionne à nouveau?
Cela peut avoir quelque chose à voir avec les changements dans Django 1.8: essayez d'utiliser le '--faux-initiale " option lorsque vous migrez si les tables existent déjà; il était implicite, mais il a maintenant été rendue explicite: docs.djangoproject.com/en/1.8/ref/django-admin/... Avez-vous essayé de la suppression de la DB SQLite ou PostgreSQL DB?
Oui. J'ai essayé de supprimer la base de données. Quand je lance
Il semble fonctionner maintenant. J'ai supprimé tous les pyc fichiers.
La suppression de la pyc fichiers n'était pas assez pour moi ... :-/
Cela peut avoir quelque chose à voir avec les changements dans Django 1.8: essayez d'utiliser le '--faux-initiale " option lorsque vous migrez si les tables existent déjà; il était implicite, mais il a maintenant été rendue explicite: docs.djangoproject.com/en/1.8/ref/django-admin/... Avez-vous essayé de la suppression de la DB SQLite ou PostgreSQL DB?
Oui. J'ai essayé de supprimer la base de données. Quand je lance
python manage.py migrate --fake-initial myapp
il me donne l'erreur: l'application n'a pas migrations (vous ne pouvez pas sélective de synchronisation unmigrated apps)Il semble fonctionner maintenant. J'ai supprimé tous les pyc fichiers.
La suppression de la pyc fichiers n'était pas assez pour moi ... :-/
OriginalL'auteur max | 2015-06-17
Vous devez vous connecter pour publier un commentaire.
Je n'aimais pas l'idée de commenter/décommenter code, j'ai donc essayé une approche différente: j'ai migré "manuellement" certaines applications, puis exécutez
django-admin.py migrate
pour ceux qui restent. Après la suppression de tous les*.pyc
fichiers, ma séquence de commandes est:où
MY_CUSTOM_USER_APP
est le nom de l'application qui contient le modèle que j'ai misAUTH_USER_MODEL
dans monsettings
fichier.Espère que cela peut aider. Btw, il semble étrange que la meilleure façon de synchroniser votre base de données dans Django 1.8 est tellement compliqué. Je me demande si je suis absent quelque chose (je ne suis pas très familier avec Django, 1.8, j'ai l'habitude de travailler avec des versions plus anciennes)
OriginalL'auteur FSp
Toujours migrer db avec
python manage.py makemigrations
et puispython manage.py migrate
dans des versions plus récentes. Pour l'erreur ci-dessus si la première fois vous êtes à la migration de votre base de données, puis utiliserpython manage.py migrate --fake-initial
. Voir les docs https://docs.djangoproject.com/en/1.9/ref/django-admin/#django-admin-migrateOriginalL'auteur Mudassar Hashmi
De travail sur Django 1.10 j'ai trouvé une autre solution:
Mon application est appelée "web", et j'ai d'abord appel:
puis-je appeler:
puis-je appeler:
Étonné: C'EST le TRAVAIL! 🙂
Il semble auth était à la recherche pour le AUTH_USER_MODEL web".UserProfile" et une relation nommée web_user_profile, et il n'a pas trouve, d'où l'erreur.
D'autre part, l'appel de makemigrations web crée d'abord l'équation d'abord, avant de demenagement est en mesure de vérifier et d'alerte, il n'est pas là.
OriginalL'auteur RadaRada
J'ai eu le même problème, et j'ai passé des heures à se taper la tête à essayer de trouver une solution, qui a été caché dans les commentaires. Mon problème est que l'CircleCI ne pouvais pas exécuter des tests à cause de cette erreur. Et j'ai pensé que j'aurais besoin de recommencer à zéro avec un nouveau et vide DB. Mais j'ai eu les mêmes erreurs. Tout était apparemment liée à 'auth', 'contenttypes" et "sites".
J'ai lu cette, et cette, ainsi que cette et aussi cette. Aucune des solutions pour moi.
Ainsi, après avoir détruit ma DB et créé un nouveau, la seule solution que j'ai trouvé afin d'éviter totalement ces
django.db.utils.ProgrammingError
était:User
modèle.find . -name "*.pyc" -exec rm -- {} +
Merci @max!./manage.py migrate
(pas de faux, pas de faux-initial, aucune migration de 'auth' ou 'contenttypes" avant, juste plaine de migrer.Mon INSTALLED_APP est la suivante:
OriginalL'auteur onekiloparsec
Erreur est essentiellement parce db (postgresql ou sqlite) n'ont pas trouvé le rapport, pour lequel vous insérez ou d'autre effectuer CRUD.
La solution est de rendre les migrations
python manage.py makemigrations <app_name>
python manage.py migrate
OriginalL'auteur shishir bondre