Я использую Python 3.7, Django и PostGres 9.5.Я недавно отредактировал свою модель, чтобы удалить некоторые столбцы и добавить другие ...
class MainSiteStatByHour(models.Model):
total_score = models.DecimalField(default=0, max_digits=12, decimal_places=2)
num_articles = models.IntegerField(default=0)
hour_of_day = IntegerField(
null=True,
validators=[
MaxValueValidator(23),
MinValueValidator(0)
]
)
index = models.FloatField(default=0)
...
class Meta:
unique_together = ("hour_of_day",)
Я сгенерировал свою миграцию, и все, казалось, прошло хорошо ...
(venv) localhost:mainsite_project davea$ python manage.py makemigrations mainsite
Did you rename mainsitestatbyhour.elapsed_time_in_seconds to mainsitestatbyhour.index (a FloatField)? [y/N] N
Migrations for 'mainsite':
mainsite/migrations/0019_auto_20190401_2139.py
- Add field index to mainsitestatbyhour
- Remove field elapsed_time_in_seconds from mainsitestatbyhour
- Remove field website from mainsitestatbyhour
- Alter unique_together for mainsitestatbyhour (1 constraint(s))
Миграция выглядит следующим образомэто:
# Generated by Django 2.1.4 on 2019-04-01 21:39
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('mainsite', '0018_auto_20190401_1713'),
]
operations = [
migrations.AddField(
model_name='mainsitestatbyhour',
name='index',
field=models.FloatField(default=0),
),
migrations.RemoveField(
model_name='mainsitestatbyhour',
name='elapsed_time_in_seconds',
),
migrations.RemoveField(
model_name='mainsitestatbyhour',
name='website',
),
migrations.AlterUniqueTogether(
name='mainsitestatbyhour',
unique_together={('hour_of_day',)},
),
]
Но когда я иду, чтобы запустить миграцию, я получаю сообщение об ошибке с жалобой на то, что одно из полей, которые я удалил, отсутствует там ...
(venv) localhost:mainsite_project davea$ python manage.py migrate mainsite
Operations to perform:
Apply all migrations: mainsite
Running migrations:
Applying mainsite.0019_auto_20190401_2139...Traceback (most recent call last):
File "/Users/davea/Documents/workspace/mainsite_project/venv/lib/python3.7/site-packages/django/db/models/options.py", line 564, in get_field
return self.fields_map[field_name]
KeyError: 'website'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "/Users/davea/Documents/workspace/mainsite_project/venv/lib/python3.7/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
utility.execute()
File "/Users/davea/Documents/workspace/mainsite_project/venv/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/davea/Documents/workspace/mainsite_project/venv/lib/python3.7/site-packages/django/core/management/base.py", line 316, in run_from_argv
self.execute(*args, **cmd_options)
File "/Users/davea/Documents/workspace/mainsite_project/venv/lib/python3.7/site-packages/django/core/management/base.py", line 353, in execute
output = self.handle(*args, **options)
File "/Users/davea/Documents/workspace/mainsite_project/venv/lib/python3.7/site-packages/django/core/management/base.py", line 83, in wrapped
res = handle_func(*args, **kwargs)
File "/Users/davea/Documents/workspace/mainsite_project/venv/lib/python3.7/site-packages/django/core/management/commands/migrate.py", line 203, in handle
fake_initial=fake_initial,
File "/Users/davea/Documents/workspace/mainsite_project/venv/lib/python3.7/site-packages/django/db/migrations/executor.py", line 117, in migrate
state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
File "/Users/davea/Documents/workspace/mainsite_project/venv/lib/python3.7/site-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards
state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
File "/Users/davea/Documents/workspace/mainsite_project/venv/lib/python3.7/site-packages/django/db/migrations/executor.py", line 244, in apply_migration
state = migration.apply(state, schema_editor)
File "/Users/davea/Documents/workspace/mainsite_project/venv/lib/python3.7/site-packages/django/db/migrations/migration.py", line 124, in apply
operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
File "/Users/davea/Documents/workspace/mainsite_project/venv/lib/python3.7/site-packages/django/db/migrations/operations/models.py", line 514, in database_forwards
getattr(new_model._meta, self.option_name, set()),
File "/Users/davea/Documents/workspace/mainsite_project/venv/lib/python3.7/site-packages/django/db/backends/base/schema.py", line 356, in alter_unique_together
self._delete_composed_index(model, fields, {'unique': True}, self.sql_delete_unique)
File "/Users/davea/Documents/workspace/mainsite_project/venv/lib/python3.7/site-packages/django/db/backends/base/schema.py", line 379, in _delete_composed_index
columns = [model._meta.get_field(field).column for field in fields]
File "/Users/davea/Documents/workspace/mainsite_project/venv/lib/python3.7/site-packages/django/db/backends/base/schema.py", line 379, in <listcomp>
columns = [model._meta.get_field(field).column for field in fields]
File "/Users/davea/Documents/workspace/mainsite_project/venv/lib/python3.7/site-packages/django/db/models/options.py", line 566, in get_field
raise FieldDoesNotExist("%s has no field named '%s'" % (self.object_name, field_name))
django.core.exceptions.FieldDoesNotExist: MainSiteStatByHour has no field named 'website'
Что делатьМне нужно сделать с моим автоматически сгенерированным migratino, чтобы решить эту проблему?