Как я могу устранить ошибку при миграции моделей Django? - PullRequest
0 голосов
/ 19 июня 2019

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

Мои манипуляции:

1) Я удалил свою старую базу данных jlb_inventory

2) Я воссоздал базу данных jlb_inventory empty

3) Я удалил "0001_initial" в каталоге приложения /migration

4) Я выполнил командуpython manage.py makemigrations => Ошибка

models.py

# Table Etude
class Study(models.Model):
    study_name = models.CharField(max_length=255, null=False)



class Inventory(models.Model):
    watercourse = models.CharField(max_length=255, null=False)
    town = models.CharField(max_length=255, null=False)
    number_resorts = models.IntegerField(null=False)
    inventory_date = models.DateField(null=False)
    fk_study = models.ForeignKey(Study, on_delete=models.CASCADE)



class Resort(models.Model):
    index_resort = models.IntegerField(null=False)
    name_resort = models.CharField(max_length=255)
    fk_inventory = models.ForeignKey(Inventory, on_delete=models.CASCADE)


class Taxon(models.Model):
    name_taxon = models.CharField(max_length=255, null=False)
    gi = models.IntegerField(default=0)


class Sample(models.Model):
    MICRO_HABITAT_CHOICES = (
        ('1', 'Habitat1'),
        ('2', 'Habitat2'),
        ('3', 'Habitat3'),
        ('4', 'Habitat4'),
        ('5', 'Habitat5'),
        ('6', 'Habitat6'),
        ('7', 'Habitat7'),
        ('8', 'Habitat8'),
    )

    taxon_quantity = models.IntegerField(null=False)
    fk_taxon = models.ForeignKey(Taxon, on_delete=models.CASCADE)
    fk_resort = models.ForeignKey(Resort, on_delete=models.CASCADE)

И моя ошибка

django.db.utils.ProgrammingError: relation "business_data_entry_taxon" does not exist
LINE 1: ...ame_taxon", "business_data_entry_taxon"."gi" FROM "business_...

Кто-то знает, в чем здесь проблема?Спасибо!

Ответы [ 2 ]

0 голосов
/ 20 июня 2019

Я отправляю aswer, но у меня нет объяснения структурирования о решении.

В моем приложении у меня есть 4 формы, и 2 вызывают БД для ChoiceField.Я попытался прокомментировать все свои path в urls.py и выполнил команду makemigrations и migrate. Это работа ...

Я думаю, перед тем как выполнить команду, Django "скомпилирует" (или что-то в этом роде) мой код и попытается установить ChoiceField, но он может найти что-то, потому что я удалилБД до этого.

Я призываю кого-то прокомментировать этот пост для более подробных объяснений, тогда я отредактирую это aswer.

0 голосов
/ 19 июня 2019

Я протестировал ваше приложение и его работоспособность (django 2.2), если вы удаляете БД и воссоздаете новую БД, так что обычно она работает, но почему-то я думаю, что вам нужна первая миграция для вашей БД.

Итак, удалите приложение INSTALLED_APPSи воссоздать БД и удалить все миграции.Затем запустите makemigrations и мигрируйте, затем добавьте ваше приложение в INSTALLED_APPS, снова запустите makemigrations и мигрируйте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...