Problema de prueba Django 1.8: ProgrammingError: la relación "auth_user" no existe
Recientemente actualicé Django a 1.8 y configuré una nueva base de datos de desarrollo para un nuevo comienzo. Las migraciones y las dependencias fueron bien, salvo los errores habituales que obtienes y terminas resolviendo. La aplicación funciona localmente ahora bien.
Sin embargo, recibo un error al intentar ejecutar pruebas:
python manage.py test
Este es el error que recibo:
django.db.utils.ProgrammingError: relation "auth_user" does not exist
No hace falta decir que el módulo de autenticación de Django está realmente instalado y migrado en la aplicación, por lo que no estoy seguro de lo que está sucediendo.
Aquí está el seguimiento completo de la pila en caso de que necesite echarle un vistazo, pero no dice nada ni remotamente útil para averiguar la causa de este error:
Traceback (most recent call last):
File "C:/Users/dabadaba/PycharmProjects/dogpatchsports_com/mysite/manage_sched_dev.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "C:\Users\dabadaba\Envs\django18\lib\site-packages\django\core\management\__init__.py", line 354, in execute_from_command_line
utility.execute()
File "C:\Users\dabadaba\Envs\django18\lib\site-packages\django\core\management\__init__.py", line 346, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Users\dabadaba\Envs\django18\lib\site-packages\django\core\management\commands\test.py", line 30, in run_from_argv
super(Command, self).run_from_argv(argv)
File "C:\Users\dabadaba\Envs\django18\lib\site-packages\django\core\management\base.py", line 394, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Users\dabadaba\Envs\django18\lib\site-packages\django\core\management\commands\test.py", line 74, in execute
super(Command, self).execute(*args, **options)
File "C:\Users\dabadaba\Envs\django18\lib\site-packages\django\core\management\base.py", line 445, in execute
output = self.handle(*args, **options)
File "C:\Users\dabadaba\Envs\django18\lib\site-packages\django\core\management\commands\test.py", line 90, in handle
failures = test_runner.run_tests(test_labels)
File "C:\Users\dabadaba\Envs\django18\lib\site-packages\django\test\runner.py", line 210, in run_tests
old_config = self.setup_databases()
File "C:\Users\dabadaba\Envs\django18\lib\site-packages\django\test\runner.py", line 166, in setup_databases
**kwargs
File "C:\Users\dabadaba\Envs\django18\lib\site-packages\django\test\runner.py", line 370, in setup_databases
serialize=connection.settings_dict.get("TEST", {}).get("SERIALIZE", True),
File "C:\Users\dabadaba\Envs\django18\lib\site-packages\django\db\backends\base\creation.py", line 368, in create_test_db
test_flush=not keepdb,
File "C:\Users\dabadaba\Envs\django18\lib\site-packages\django\core\management\__init__.py", line 120, in call_command
return command.execute(*args, **defaults)
File "C:\Users\dabadaba\Envs\django18\lib\site-packages\django\core\management\base.py", line 445, in execute
output = self.handle(*args, **options)
File "C:\Users\dabadaba\Envs\django18\lib\site-packages\django\core\management\commands\migrate.py", line 179, in handle
created_models = self.sync_apps(connection, executor.loader.unmigrated_apps)
File "C:\Users\dabadaba\Envs\django18\lib\site-packages\django\core\management\commands\migrate.py", line 318, in sync_apps
cursor.execute(statement)
File "C:\Users\dabadaba\Envs\django18\lib\site-packages\django\db\backends\utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "C:\Users\dabadaba\Envs\django18\lib\site-packages\django\db\utils.py", line 98, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "C:\Users\dabadaba\Envs\django18\lib\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
Puedo encontrar una solución alternativa despuésesta respuesta que evita que se ejecute la tarea de pruebamigrate
, que según lo que he estado leyendo debería ser el punto donde ocurre el error. Lo suficientemente extraño, ya que cuando corromigrate
todo esta bien.
Sin embargo, preferiría no recurrir a una solución descarada y seguir haciendo las cosas como están diseñadas. Además, este error puede ser un indicio de que algo más está realmente mal y debe corregirse.
Algunas soluciones sugieren ejecutar:
python manage.py migrate auth
python manage.py migrate
Pero eso no hace nada ya que no hay migraciones pendientes en mi proyecto.
¿Cómo puedo resolver este misterioso problema?