Как я могу исправить ошибку миграции django DB без удаления файлов миграции
какой лучший способ исправить этот вид ошибки DataBase Errors без необходимости удаления моей базы данных и файлов миграции и начала ввода данных с нуля?
django.db.utils.IntegrityError: The row in table 'store_product_category' with primary key '1' has an invalid foreign key: store_product_category.category_id contains a value '1' that does not have a corresponding value in store_category.id.
при проверке sqlit DB я заметил, что есть несоответствие в IDs store_product_category и store_category.id.
могу ли я как-то изменить id непосредственно в БД, я не хочу начинать удалять файлы БД и миграции
Если я правильно понял:
У модели StoreProductCategory есть FK - category, связывающий с моделью StoreCategory.
У вас есть запись в SPC с идентификатором category == 1, но нет записи в StoreCategory с этим идентификатором?
Если да, то исправление достаточно простое.
- Войдите в оболочку БД с помощью
python manage.py dbshellи выполните команду SQLINSERT, чтобы добавить соответствующую запись. - Измените вашу модель для
StoreProductCategoryи установитеon_deleteдля этого FK. Я бы предположил, что здесь может подойтиPROTECT, но решать вам - просто убедитесь, что это что-то, что будет поддерживать последовательность.
Если (2) уже сделано, я задаюсь вопросом, как это произошло в первый раз - это указывает на то, что кто-то напрямую возился с БД. Возможно, вы захотите выяснить, кто имеет доступ и что там делается.