Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

django.db.utils.IntegrityError: UNIQUE constraint failed

Tags:

python

django

Hi m new in django framework and I am trying to solve this problem from 2 day I am getting this error after python manage.py migrate command. I cant understand what the problem is?

models.py

from django.db import models
from django.utils import timezone


class BlogPost(models.Model):
    author = models.ForeignKey('auth.User')
    title = models.CharField(max_length=100,unique=True)
    text = models.TextField()
    created_date = models.DateTimeField(default=timezone.now)
    published_date = models.DateTimeField(blank=True,null=True)

def publish(self):
    self.published_date=timezone.now()
    self.save()

def __str__(self):
    return self.title

error

  File "/home/letsperf/.conda/envs/MyDjangoEnv/lib/python3.5/site-packages   /django/db/migrations/migration.py", line 129, in apply
operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
  File "/home/letsperf/.conda/envs/MyDjangoEnv/lib/python3.5/site-packages/django/db/migrations/operations/fields.py", line 216, in database_forwards
schema_editor.alter_field(from_model, from_field, to_field)
  File "/home/letsperf/.conda/envs/MyDjangoEnv/lib/python3.5/site-packages/django/db/backends/base/schema.py", line 515, in alter_field
old_db_params, new_db_params, strict)
  File "/home/letsperf/.conda/envs/MyDjangoEnv/lib/python3.5/site-packages/django/db/backends/sqlite3/schema.py", line 262, in _alter_field
self._remake_table(model, alter_field=(old_field, new_field))
  File "/home/letsperf/.conda/envs/MyDjangoEnv/lib/python3.5/site-packages/django/db/backends/sqlite3/schema.py", line 206, in _remake_table
self.quote_name(model._meta.db_table),
  File "/home/letsperf/.conda/envs/MyDjangoEnv/lib/python3.5/site-packages/django/db/backends/base/schema.py", line 120, in execute
cursor.execute(sql, params)
  File "/home/letsperf/.conda/envs/MyDjangoEnv/lib/python3.5/site-packages/django/db/backends/utils.py", line 80, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
  File "/home/letsperf/.conda/envs/MyDjangoEnv/lib/python3.5/site-packages/django/db/backends/utils.py", line 65, in execute
return self.cursor.execute(sql, params)
  File "/home/letsperf/.conda/envs/MyDjangoEnv/lib/python3.5/site-packages/django/db/utils.py", line 94, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/home/letsperf/.conda/envs/MyDjangoEnv/lib/python3.5/site-packages/django/utils/six.py", line 685, in reraise
raise value.with_traceback(tb)
  File "/home/letsperf/.conda/envs/MyDjangoEnv/lib/python3.5/site-packages/django/db/backends/utils.py", line 65, in execute
return self.cursor.execute(sql, params)
  File "/home/letsperf/.conda/envs/MyDjangoEnv/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py", line 328, in execute
return Database.Cursor.execute(self, query, params)
django.db.utils.IntegrityError: UNIQUE constraint failed: social_blogpost.title

please help I am confused !!

like image 875
Dexter Avatar asked Dec 08 '25 11:12

Dexter


1 Answers

According to Django documentation, this is a summary of what the problem is;

Applying a “plain” migration that adds a unique non-nullable field to a table with existing rows will raise an error because the value used to populate existing rows is generated only once, thus breaking the unique constraint.

like image 64
Toluwalemi Avatar answered Dec 11 '25 03:12

Toluwalemi



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!