Django.db.utils.OperationalError: no such table: accounts_user,
I'm trying to run python manage.py migrate but I get a " django.db.utils.OperationalError: no such table: accounts_user ", I have imported the model in my settings as
AUTH_USER_MODEL = 'accounts.User'
here is my accounts/models.py
from django.db import models
from django.contrib.auth.models import AbstractUser, BaseUserManager, PermissionsMixin
from django.utils import timezone
class UserManager(BaseUserManager):
def create_user(self, email, password=None, **extra_fields):
if not email:
raise ValueError('Users must have an email address')
email = self.normalize_email(email)
user = self.model(email=email, **extra_fields)
user.set_password(password)
user.save(using=self._db)
return user
def create_superuser(self, email, password=None, **extra_fields):
extra_fields.setdefault('is_staff', True)
extra_fields.setdefault('is_superuser', True)
return self.create_user(email, password, **extra_fields)
class User(AbstractUser):
ROLE_CHOICES = [
('customer', 'Customer'),
('vendor', 'Vendor'),
('staff', 'Staff'),
('admin', 'Administrator'),
]
username = None
email = models.EmailField(unique=True)
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
is_active = models.BooleanField(default=False)
user_role = models.CharField(max_length=20, choices=ROLE_CHOICES, default='customer')
phone_number = models.CharField(max_length=30, blank=True)
is_verified = models.BooleanField(default=False)
created_at = models.DateTimeField(default=timezone.now)
updated_at = models.DateTimeField(auto_now=True)
address = models.ForeignKey(
'orders.ShippingAddress',
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name='default_for_profiles'
)
profile_picture = models.ImageField(upload_to='profiles/', blank=True, null=True)
# Birthday Fields
birthday = models.DateField(null=True, blank=True)
birthday_last_updated = models.DateTimeField(null=True, blank=True)
ip_address_last_seen = models.GenericIPAddressField(null=True, blank=True)
# Terms & Conditions Tracking
agreed_to_terms = models.BooleanField(default=False)
agreed_at = models.DateTimeField(null=True, blank=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['first_name', 'last_name']
objects = UserManager()
def __str__(self):
return self.email
and when I ran python manage.py migrate I get an error
traceback
Running migrations:
Applying accounts.0002_initial...Traceback (most recent call last):
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\utils.py", line 103, in _execute
return self.cursor.execute(sql)
~~~~~~~~~~~~~~~~~~~^^^^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\sqlite3\base.py", line 356, in execute
return super().execute(query)
~~~~~~~~~~~~~~~^^^^^^^
sqlite3.OperationalError: no such table: accounts_user
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\USER\desktop\jewellery_store\backend\manage.py", line 22, in <module>
main()
~~~~^^
File "C:\Users\USER\desktop\jewellery_store\backend\manage.py", line 18, in main
execute_from_command_line(sys.argv)
~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\core\management\__init__.py", line 442, in execute_from_command_line
utility.execute()
~~~~~~~~~~~~~~~^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\core\management\__init__.py", line 436, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\core\management\base.py", line 420, in run_from_argv
self.execute(*args, **cmd_options)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\core\management\base.py", line 464, in execute
output = self.handle(*args, **options)
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\core\management\base.py", line 111, in wrapper
res = handle_func(*args, **kwargs)
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\core\management\commands\migrate.py", line 353, in handle
post_migrate_state = executor.migrate(
targets,
...<3 lines>...
fake_initial=fake_initial,
)
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\migrations\executor.py", line 135, in migrate
state = self._migrate_all_forwards(
state, plan, full_plan, fake=fake, fake_initial=fake_initial
)
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\migrations\executor.py", line 167, in _migrate_all_forwards
state = self.apply_migration(
state, migration, fake=fake, fake_initial=fake_initial
)
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\migrations\executor.py", line 255, in apply_migration
state = migration.apply(state, schema_editor)
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\migrations\migration.py", line 132, in apply
operation.database_forwards(
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self.app_label, schema_editor, old_state, project_state
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\migrations\operations\fields.py", line 110, in database_forwards
schema_editor.add_field(
~~~~~~~~~~~~~~~~~~~~~~~^
from_model,
^^^^^^^^^^^
field,
^^^^^^
)
^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\sqlite3\schema.py", line 328, in add_field
super().add_field(model, field)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\base\schema.py", line 775, in add_field
self.execute(sql, params or None)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\base\schema.py", line 204, in execute
cursor.execute(sql, params)
~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\utils.py", line 122, in execute
return super().execute(sql, params)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\utils.py", line 79, in execute
return self._execute_with_wrappers(
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
sql, params, many=False, executor=self._execute
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\utils.py", line 92, in _execute_with_wrappers
return executor(sql, params, many, context)
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\utils.py", line 100, in _execute
with self.db.wrap_database_errors:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\utils.py", line 91, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\utils.py", line 103, in _execute
return self.cursor.execute(sql)
~~~~~~~~~~~~~~~~~~~^^^^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\sqlite3\base.py", line 356, in execute
return super().execute(query)
~~~~~~~~~~~~~~~^^^^^^^
django.db.utils.OperationalError: no such table: accounts_user
(.venv) PS C:\Users\USER\desktop\jewellery_store\backend> python manage.py makemigrations accounts
No changes detected in app 'accounts'
(.venv) PS C:\Users\USER\desktop\jewellery_store\backend> python manage.py migrate
Operations to perform:
Apply all migrations: accounts, admin, auth, cart, contenttypes, dashboard, logistics, notifications, orders, payment, products, reviews, sessions, vendors, wishlist
Running migrations:
Applying accounts.0002_initial...Traceback (most recent call last):
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\utils.py", line 103, in _execute
return self.cursor.execute(sql)
~~~~~~~~~~~~~~~~~~~^^^^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\sqlite3\base.py", line 356, in execute
return super().execute(query)
~~~~~~~~~~~~~~~^^^^^^^
sqlite3.OperationalError: no such table: accounts_user
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\USER\desktop\jewellery_store\backend\manage.py", line 22, in <module>
main()
~~~~^^
File "C:\Users\USER\desktop\jewellery_store\backend\manage.py", line 18, in main
execute_from_command_line(sys.argv)
~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\core\management\__init__.py", line 442, in execute_from_command_line
utility.execute()
~~~~~~~~~~~~~~~^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\core\management\__init__.py", line 436, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\core\management\base.py", line 420, in run_from_argv
self.execute(*args, **cmd_options)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\core\management\base.py", line 464, in execute
output = self.handle(*args, **options)
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\core\management\base.py", line 111, in wrapper
res = handle_func(*args, **kwargs)
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\core\management\commands\migrate.py", line 353, in handle
post_migrate_state = executor.migrate(
targets,
...<3 lines>...
fake_initial=fake_initial,
)
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\migrations\executor.py", line 135, in migrate
state = self._migrate_all_forwards(
state, plan, full_plan, fake=fake, fake_initial=fake_initial
)
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\migrations\executor.py", line 167, in _migrate_all_forwards
state = self.apply_migration(
state, migration, fake=fake, fake_initial=fake_initial
)
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\migrations\executor.py", line 255, in apply_migration
state = migration.apply(state, schema_editor)
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\migrations\migration.py", line 132, in apply
operation.database_forwards(
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
self.app_label, schema_editor, old_state, project_state
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\migrations\operations\fields.py", line 110, in database_forwards
schema_editor.add_field(
~~~~~~~~~~~~~~~~~~~~~~~^
from_model,
^^^^^^^^^^^
field,
^^^^^^
)
^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\sqlite3\schema.py", line 328, in add_field
super().add_field(model, field)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\base\schema.py", line 775, in add_field
self.execute(sql, params or None)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\base\schema.py", line 204, in execute
cursor.execute(sql, params)
~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\utils.py", line 122, in execute
return super().execute(sql, params)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\utils.py", line 79, in execute
return self._execute_with_wrappers(
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
sql, params, many=False, executor=self._execute
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\utils.py", line 92, in _execute_with_wrappers
return executor(sql, params, many, context)
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\utils.py", line 100, in _execute
with self.db.wrap_database_errors:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\utils.py", line 91, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\utils.py", line 103, in _execute
return self.cursor.execute(sql)
~~~~~~~~~~~~~~~~~~~^^^^^
File "C:\Users\USER\desktop\jewellery_store\backend\.venv\Lib\site-packages\django\db\backends\sqlite3\base.py", line 356, in execute
return super().execute(query)
~~~~~~~~~~~~~~~^^^^^^^
django.db.utils.OperationalError: no such table: accounts_user