Reputation: 23216
I added a new model to models.py
corresponding to a new SQL table I need to create. I included a field, Id
, which apparently it does not like, as python manage.py migrate
said that it was a duplicate field (presumably an Id
field is also being automatically added or something).
That's fine, so I removed that field from the model and re-ran python manage.py makemigrations
, which correctly reported that the Id
field was being removed. I think re-ran python manage.py migrate
, but it still gives the same error of there being a duplicate Id
field...
From models.py
:
class TII(models.Model):
Person_bnr_id = models.CharField(max_length = 128, unique = True)
COURSE_IDENTIFICATION = models.CharField(max_length = 128, unique = True)
Course_start = models.CharField(max_length = 128, unique = True)
Course_end = models.CharField(max_length = 128, unique = True)
TurnItIn_W01 = models.CharField(max_length = 128, unique = True)
TurnItIn_W02 = models.CharField(max_length = 128, unique = True)
TurnItIn_W03 = models.CharField(max_length = 128, unique = True)
TurnItIn_W04 = models.CharField(max_length = 128, unique = True)
TurnItIn_W05 = models.CharField(max_length = 128, unique = True)
TurnItIn_W06 = models.CharField(max_length = 128, unique = True)
TurnItIn_W07 = models.CharField(max_length = 128, unique = True)
TurnItIn_W08 = models.CharField(max_length = 128, unique = True)
TurnItIn_W09 = models.CharField(max_length = 128, unique = True)
TurnItIn_W10 = models.CharField(max_length = 128, unique = True)
TurnItIn_W11 = models.CharField(max_length = 128, unique = True)
TurnItIn_W12 = models.CharField(max_length = 128, unique = True)
From python manage.py migrate
:
(P27_D19) [root@mdbiawebappdev1 loeuk]# python manage.py migrate
Operations to perform:
Apply all migrations: admin, contenttypes, studentprogress, auth, sessions
Running migrations:
Rendering model states... DONE
Applying studentprogress.0100_tii...Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/srv/P27_D19/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
utility.execute()
File "/srv/P27_D19/lib/python2.7/site-packages/django/core/management/__init__.py", line 345, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/srv/P27_D19/lib/python2.7/site-packages/django/core/management/base.py", line 348, in run_from_argv
self.execute(*args, **cmd_options)
File "/srv/P27_D19/lib/python2.7/site-packages/django/core/management/base.py", line 399, in execute
output = self.handle(*args, **options)
File "/srv/P27_D19/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 200, in handle
executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial)
File "/srv/P27_D19/lib/python2.7/site-packages/django/db/migrations/executor.py", line 92, in migrate
self._migrate_all_forwards(plan, full_plan, fake=fake, fake_initial=fake_initial)
File "/srv/P27_D19/lib/python2.7/site-packages/django/db/migrations/executor.py", line 121, in _migrate_all_forwards
state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
File "/srv/P27_D19/lib/python2.7/site-packages/django/db/migrations/executor.py", line 198, in apply_migration
state = migration.apply(state, schema_editor)
File "/srv/P27_D19/lib/python2.7/site-packages/django/db/migrations/migration.py", line 123, in apply
operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
File "/srv/P27_D19/lib/python2.7/site-packages/django/db/migrations/operations/models.py", line 59, in database_forwards
schema_editor.create_model(model)
File "/srv/P27_D19/lib/python2.7/site-packages/sql_server/pyodbc/schema.py", line 535, in create_model
self.execute(sql, params or None)
File "/srv/P27_D19/lib/python2.7/site-packages/sql_server/pyodbc/schema.py", line 584, in execute
cursor.execute(sql, params)
File "/srv/P27_D19/lib/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "/srv/P27_D19/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/srv/P27_D19/lib/python2.7/site-packages/django/db/utils.py", line 95, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/srv/P27_D19/lib/python2.7/site-packages/django/db/backends/utils.py", line 62, in execute
return self.cursor.execute(sql)
File "/srv/P27_D19/lib/python2.7/site-packages/sql_server/pyodbc/base.py", line 537, in execute
return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: ('42S21', "[42S21] [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Column names in each table must be unique. Column name 'Id' in table 'studentprogress_tii' is specified more than once. (2705) (SQLExecDirectW)")
Here is the output of showmigrations
:
admin
[X] 0001_initial
[X] 0002_logentry_remove_auto_add
auth
[X] 0001_initial
[X] 0002_alter_permission_name_max_length
[X] 0003_alter_user_email_max_length
[X] 0004_alter_user_username_opts
[X] 0005_alter_user_last_login_null
[X] 0006_require_contenttypes_0002
[X] 0007_alter_validators_add_error_messages
contenttypes
[X] 0001_initial
[X] 0002_remove_content_type_name
sessions
[X] 0001_initial
studentprogress
[X] 0001_initial
[X] 0002_delete_aa
[X] 0003_advisor
[X] 0004_student
[X] 0005_delete_student
[X] 0006_student
[X] 0007_staff
[X] 0008_remove_staff_mgrid
[X] 0009_auto_20160505_0909
[X] 0010_delete_generaluser
[X] 0011_generaluser
[X] 0012_remove_generaluser_institution
[X] 0013_delete_generaluser
[X] 0014_generaluser
[X] 0015_delete_generaluser
[X] 0016_generaluser
[X] 0017_delete_student
[X] 0018_delete_generaluser
[X] 0019_generaluser
[X] 0020_delete_generaluser
[X] 0021_generaluser
[X] 0022_student
[X] 0023_delete_student
[X] 0024_student
[X] 0025_studenthold
[X] 0026_studentsro
[X] 0027_delete_studentsro
[X] 0028_studentsro
[X] 0029_delete_studentsro
[X] 0030_studentprep
[X] 0031_student_program_end_date
[X] 0032_studentfirstmodule
[X] 0033_studentpaymentdetail_studentpaymentsummary
[X] 0034_auto_20160615_1243
[X] 0035_delete_studentpaymentdetail
[X] 0036_studentpaymentdetail
[X] 0037_delete_studentpaymentdetail
[X] 0038_studentpaymentdetail
[X] 0039_auto_20160615_1310
[X] 0040_delete_studentpaymentdetail
[X] 0041_studentpaymentdetail
[X] 0042_delete_studentpaymentdetail
[X] 0043_studentpaymentdetail
[X] 0044_delete_studentpaymentdetail
[X] 0045_studentpaymentdetail
[X] 0046_remove_studentpaymentdetail_effective_due_date
[X] 0047_studentpaymentdetail_effective_due_date
[X] 0048_auto_20160615_2307
[X] 0049_auto_20160615_2309
[X] 0050_studentsummary
[X] 0051_delete_studentfirstmodule
[X] 0052_studentfirstmodule
[X] 0053_delete_studentfirstmodule
[X] 0054_studentfirstmodule
[X] 0055_delete_studentfirstmodule
[X] 0056_studentfm_uol_studentfm_uor
[X] 0057_delete_studentfm_uol
[X] 0058_studentfm_uol
[X] 0059_delete_studentsummary
[X] 0060_studentsummary
[X] 0061_advisorportfolio
[X] 0062_delete_advisorportfolio
[X] 0063_advisorportfolio
[X] 0064_auto_20160712_1525
[X] 0065_advisor_advisor_name
[X] 0066_auto_20160713_1614
[X] 0067_auto_20160713_1616
[X] 0068_remove_advisor_institution
[X] 0069_auto_20160713_1620
[X] 0070_advisor_location
[X] 0071_auto_20160713_1624
[X] 0072_auto_20160715_1437
[X] 0073_studentprep
[X] 0074_moduleprogress_onboarding
[X] 0075_auto_20160722_1422
[X] 0076_studentmoduleprogress_studentonboarding
[X] 0077_delete_studentmoduleprogress
[X] 0078_studentmoduleprogress
[X] 0079_delete_studentonboarding
[X] 0080_studentonboarding
[X] 0081_delete_studentonboarding
[X] 0082_studentonboarding
[X] 0083_delete_studentpaymentsummary
[X] 0084_studentpaymentsummary
[X] 0085_delete_studentpaymentsummary
[X] 0086_studentpaymentsummary
[X] 0087_delete_studentpaymentsummary
[X] 0088_studentpaymentsummary
[X] 0089_auto_20160905_1827
[X] 0090_auto_20160905_1828
[X] 0091_auto_20160905_1828
[X] 0092_auto_20160905_1829
[X] 0093_auto_20160905_1829
[X] 0094_auto_20160906_1112
[X] 0095_remove_student_referrer_email
[X] 0096_auto_20160906_1114
[X] 0097_student_referrer_first_name
[X] 0098_student_referrer_last_name
[X] 0099_student_referrer_email
[ ] 0100_tii
[ ] 0101_remove_tii_id
Upvotes: 0
Views: 629
Reputation: 308779
The showmigrations
output shows that the 0100_tii
migration hasn't been applied yet.
[X] 0099_student_referrer_email
[ ] 0100_tii
[ ] 0101_remove_tii_id
Therefore I would delete both the 0100_tii
and 0101_remove_tii_id
files. Then you can rerun makemigrations
. If all that 0100_tii
did was add the id field, then you might not need to run makemigrations
until you make further changes to your model.
Upvotes: 3