我想迁移我的模型以在本地PgSQL DB上创建表。 这不是我第一次在此配置上执行此操作,但是这次失败了。
1)我删除了旧数据库 jlb_inventory
2)我重新创建了数据库 jlb_inventory 空
3)我删除了应用程序目录/migration
上的“ 0001_initial”
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_...
有人知道这是什么问题吗? 谢谢!
答案 0 :(得分:0)
如果您删除数据库并重新创建新的数据库,那么我正常就测试了您的应用及其工作(django 2.2),但是我认为您需要为数据库进行首次迁移。
因此,删除应用程序INSTALLED_APPS,然后重新创建数据库并删除所有迁移。然后运行makemigrations并进行迁移,然后将您的应用添加到INSTALLED_APPS,再次运行makemigrations并进行迁移。
答案 1 :(得分:0)
我发布了一个请求,但是没有关于该解决方案的结构化说明。
在我的应用程序中,我有4种表单,其中2种称为ChoiceField
。
我尝试在path
中注释所有urls.py
,并运行命令makemigrations
和migrate
。 就是这样 ...
我认为,在执行命令之前,Django“编译”(或类似的东西)我的代码并尝试设置ChoiceField,但他可以找到一些东西,因为我之前删除了数据库。
我鼓励某人对此帖子发表评论,以获取更多解释,然后,我将编辑该aswer。