kurojneko
@kurojneko

Как исправить ошибку миграции "ProgrammingError: column «file_id» cannot be cast automatically to type integer" django и postgres?

Здравствуйте, столкнулся с непонятной проблемой.
модели:
class Document(Model):
    owner = models.ForeignKey('auth.User', verbose_name=u'Владелец')
    title = models.CharField(verbose_name=u'Название', max_length=100)
    description = models.CharField(verbose_name=u'Описание', max_length=1000, null=True, blank=True)
    file_obj = models.ForeignKey('common.File', verbose_name=u'Файлы', blank=True, null=True)

def get_file_path(instance, filename):
    ext = filename.split('.')[-1]
    filename = "%s.%s" % (uuid.uuid4(), ext)
    return os.path.join('files', filename)

class File(Model):
    owner = models.ForeignKey('auth.User', verbose_name=u'Владелец')
    name = models.CharField(verbose_name=u'Название', max_length=1000, null=True, blank=True)
    file_storage = models.FileField(verbose_name=u'Сам файл', upload_to=get_file_path)


При миграции происходит ошибка:
ProgrammingError: column "file_id" cannot be cast automatically to type integer
HINT:  Specify a USING expression to perform the conversion.

Гугл ничего дельного по этому поводу не сказал. Чем ему не нравится file_id - не понимаю.
Интернеты советуют пересоздать поле заново вручную, так я даже не понимаю из какой модели это поле берется.
Пробовал удалять базу полностью, не помогло.
  • Вопрос задан
  • 653 просмотра
Пригласить эксперта
Ответы на вопрос 1
kurojneko
@kurojneko Автор вопроса
Проблемы были в миграциях от старой базы, почистил их, миграции заработали.

Плюс постгрес почему то не хотел видеть стандартного пользователя, говорил
relation "auth_user" does not exist
решается отдельными миграциями:
python manage.py migrate auth
python manage.py migrate
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы