Два абсолютно одинаковых репозитория, но разный результат

Я могу установить скрипт из его оригинального репо на Github (project1) на сервер Ubuntu: Я клонирую оригинальное репо и запускаю установку на сервере, без каких-либо проблем.

Однако если я создаю репо (project2) в своем аккаунте GitHub, затем копирую все файлы (кроме .git) из оригинального репо (project1) в мое новое репо (project2), затем клонирую мое репо и начинаю установку на сервере, установка выдает ошибку.

ango.db.migrations.exceptions.InvalidBasesError: Cannot resolve bases for [<ModelState: 'dictionary.MetaFlatPage'>]
This can happen if you are inheriting models from an app with migrations (e.g. contrib.auth)
 in an app with no migrations; see https://docs.djangoproject.com/en/3.2/topics/migrations/#dependencies for more

Эти два репозитория абсолютно одинаковы. Я не изменил ни одного файла, ни одной строки. Вы знаете, что может вызвать эту проблему?

Script - это сценарий Django.

Самым простым и распространенным объяснением может быть то, что на одной системе уже произошла миграция и есть папка миграции, а на другой системе это не так. Например, на одной системе может быть модель, которая на новой системе отсутствует или что-то подобное. Но давайте предположим, что проблема не в этом.

Другими словами, эта ошибка говорит о том, что созданная миграция пытается перенести модель, которая зависит от другой модели, которая еще не известна (то есть миграция для этой модели еще не существует). Она также сообщает, что это, вероятно, связано со встроенными моделями, такими как User или моделями, которые наследуются от User.

Из того, что я вижу без исходного кода, ваша модель MetaFlatPage, похоже, наследуется от другой модели. Чтобы исправить эту проблему, посмотрите в сгенерированный файл миграции для этой модели и убедитесь, что файл миграции создает MetaFlatPage ПОСЛЕ модели, от которой она наследуется.

Почему это происходит, мне не ясно. Возможно, порядок создания модели имеет некоторую зависимость от пакета или функциональности python, которая может отличаться в немного другой версии или os-специфичном пакете. Если это так, то вы столкнулись с редким багом или чем-то подобным :)

Вернуться на верх