Hi,

I am getting an error django.db.utils.OperationalError: no such table: 
auth_permission on my manage.py command (makemigrations/migrate/runserver)

I am not sure if this consider a bug or is it a problem of my setup. So I 
am checking here before filing bug report to the ticket tracker.

To reproduce the error:

   - Django==2.2.15 
   - djangorestframework==3.11.1 

Steps:

   1. Copy code below. 
   2. Run python manage.py makemigrations -> error. 

or

   1. Remove the code from urls.py that will cause the error. 
   2. Run python manage.py makemigrations -> success without error. 
   3. Add back the removed code from step 1. 
   4. Run python manage.py migrate -> this will trigger the same error. 
   Imagine we deployed our project to server and run migrate for the very 
   first time. 

customuser/models.py

from django.contrib.auth.models import AbstractUser, Permission, UserManager
from django.db.models import Q
from django.db import models

class CustomUserManager(UserManager):

    def get_users(self):
        perm = Permission.objects.get(codename='can_view_something')
        users = self.filter(Q(groups__permissions=perm) | 
Q(user_permissions=perm))
        return users

class CustomUser(AbstractUser):
    objects = CustomUserManager()

    permissions = (
        ('can_view_something', 'Can View Something'),
    )

customuser/views.py

from django.contrib.auth import get_user_model
from rest_framework import generics, serializers
from .models import CustomUser

class UserSerializer(serializers.ModelSerializer):
    class Meta(object):
        model = get_user_model()
        fields = ('id', 'username',)

class SomeUserView(generics.ListAPIView):
    queryset = get_user_model().objects.get_users()
    serializer = UserSerializer

myproject/urls.py (Root urls.py)

from django.contrib import admin
from django.urls import path
from customuser import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('users', views.SomeUserView.as_view(), name="some-user-view")
]

Exact traceback


Traceback (most recent call last):
  File "manage.py", line 21, in <module>
    main()
  File "manage.py", line 17, in main
    execute_from_command_line(sys.argv)
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/core/management/__init__.py",
 line 381, in execute_from_command_line
    utility.execute()
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/core/management/__init__.py",
 line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/core/management/base.py",
 line 323, in run_from_argv
    self.execute(*args, **cmd_options)
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/core/management/base.py",
 line 361, in execute
    self.check()
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/core/management/base.py",
 line 390, in check
    include_deployment_checks=include_deployment_checks,
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/core/management/base.py",
 line 377, in _run_checks
    return checks.run_checks(**kwargs)
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/core/checks/registry.py",
 line 72, in run_checks
    new_errors = check(app_configs=app_configs)
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/core/checks/urls.py",
 line 13, in check_url_config
    return check_resolver(resolver)
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/core/checks/urls.py",
 line 23, in check_resolver
    return check_method()
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/urls/resolvers.py",
 line 399, in check
    for pattern in self.url_patterns:
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/utils/functional.py",
 line 80, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/urls/resolvers.py",
 line 584, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/utils/functional.py",
 line 80, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/urls/resolvers.py",
 line 577, in urlconf_module
    return import_module(self.urlconf_name)
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/importlib/__init__.py",
 line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/me/Workspace/reproducemigrateerror/reproduceerror/urls.py", line 
20, in <module>
    from customuser import views
  File "/Users/me/Workspace/reproducemigrateerror/customuser/views.py", line 
14, in <module>
    class SomeUserView(generics.ListAPIView):
  File "/Users/me/Workspace/reproducemigrateerror/customuser/views.py", line 
15, in SomeUserView
    queryset = get_user_model().objects.get_users()
  File "/Users/me/Workspace/reproducemigrateerror/customuser/models.py", line 
9, in get_users
    perm = Permission.objects.get(codename='can_view_something')
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/db/models/manager.py",
 line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/db/models/query.py",
 line 402, in get
    num = len(clone)
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/db/models/query.py",
 line 256, in __len__
    self._fetch_all()
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/db/models/query.py",
 line 1242, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/db/models/query.py",
 line 55, in __iter__
    results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, 
chunk_size=self.chunk_size)
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/db/models/sql/compiler.py",
 line 1140, in execute_sql
    cursor.execute(sql, params)
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/db/backends/utils.py",
 line 99, in execute
    return super().execute(sql, params)
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/db/backends/utils.py",
 line 67, in execute
    return self._execute_with_wrappers(sql, params, many=False, 
executor=self._execute)
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/db/backends/utils.py",
 line 76, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/db/backends/utils.py",
 line 84, in _execute
    return self.cursor.execute(sql, params)
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/db/utils.py",
 line 89, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/db/backends/utils.py",
 line 84, in _execute
    return self.cursor.execute(sql, params)
  File 
"/Users/me/.virtualenvs/reproducemigrateerror-hrGW_V7T/lib/python3.7/site-packages/django/db/backends/sqlite3/base.py",
 line 383, in execute
    return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: no such table: auth_permission

Thanks

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/aeca51fa-2abb-4216-9ec3-6bc0e35c5857n%40googlegroups.com.

Reply via email to