Python 迁移时出错-psycopg2 Django

Python 迁移时出错-psycopg2 Django,python,django,postgresql,psycopg2,Python,Django,Postgresql,Psycopg2,我试图在服务器上部署本地工作,但在python manage.py上运行migrate时,我遇到了psycopg2问题 设置: DATABASES = { 'default':{ 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': '******', 'USER': '*****', 'PASSWORD': '**********',

我试图在服务器上部署本地工作,但在python manage.py上运行migrate时,我遇到了psycopg2问题

设置:

    DATABASES = {
    'default':{
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': '******',
        'USER': '*****',
        'PASSWORD': '**********',
        'HOST': '*******',
        'PORT': '5432'
    }
}
有问题的模型

class user(AbstractBaseUser, PermissionsMixin):
   created = models.DateTimeField(auto_now_add=True)
   first_name = models.CharField(max_length=50)
   last_name = models.CharField(max_length=50)
   email = models.EmailField(unique=True)
   street = models.CharField(max_length=100, null=True, blank=True)
   street_num = models.CharField(max_length=10, null=True, blank=True)
   unit_num = models.CharField(max_length=10, null=True, blank=True)
   city = models.CharField(max_length=50, null=True, blank=True)
   postal_code = models.CharField(max_length=10, null=True, blank=True)
   state = models.ForeignKey(state, null=True, blank=True)
   country = models.ForeignKey(country, null=True, blank=True)
   phone = models.CharField(max_length=50, null=True, blank=True)

   is_staff = models.BooleanField(default=False)
   is_active = models.BooleanField(default=True)
   .....

class country(models.Model):
    name = models.CharField(max_length=50)
    code = models.CharField(max_length=10)


class State(models.Model):
    country = models.ForeignKey(country, on_delete=models.CASCADE)
    name = models.CharField(max_length=50)
    short_name = models.CharField(max_length=3)
    group = models.CharField(max_length=2, null=True, blank=True, choices=GROUP_TYPE)
    properties = models.ForeignKey(stateProperties, null=True, blank=True)
迁移文件:

我错过了什么

  • 评论国家/地区模型和运行
  • python manage.py makemigrations应用程序\u name

  • 取消对国家/地区模型的注释并运行上述相同命令(将正确地重新创建国家/地区模型)

  • 最后,使用migrate将更改应用于数据库:

  • python manage.py迁移

  • 评论国家/地区模型和运行
  • python manage.py makemigrations应用程序\u name

  • 取消对国家/地区模型的注释并运行上述相同命令(将正确地重新创建国家/地区模型)

  • 最后,使用migrate将更改应用于数据库:

  • python manage.py迁移

    替换此:

    country = models.ForeignKey(country, null=True, blank=True)
    
    与:

    我相信这应该可以做到。

    取代这个:

    country = models.ForeignKey(country, null=True, blank=True)
    
    与:


    我相信这应该可以解决问题。

    我发现了问题所在。这是我的错误。我将.gitignore设置为忽略迁移文件和文件夹。因此,该国家/地区所在的迁移文件夹未发送到主分支


    它是固定的。谢谢您的帮助。

    我发现了问题。这是我的错误。我将.gitignore设置为忽略迁移文件和文件夹。因此,该国家/地区所在的迁移文件夹未发送到主分支


    它是固定的。谢谢您的帮助。

    为什么您认为是用户模型导致了问题?你也可以展示你的国家模型吗?此外,这两个模型是否在同一个django应用程序中?@MananMehta嘿,因为:应用profile.0001_首字母。使用sqlite开发服务器,一切都可以在本地正常工作。这只有在我使用psycopg2时才会发生。但我也加入了国家models@AndreMendes你试过我在回答中的建议了吗?为什么你认为是用户模型导致了这个问题?你也可以展示你的国家模型吗?此外,这两个模型是否在同一个django应用程序中?@MananMehta嘿,因为:应用profile.0001_首字母。使用sqlite开发服务器,一切都可以在本地正常工作。这只有在我使用psycopg2时才会发生。但我也加入了国家models@AndreMendes你试过我在回答中的建议了吗?对不起,为了解决这个问题,我把所有的都改成了小写。我所有的型号都是小写的。在所有的模型都是大写之前。对不起,我把所有的都改成了小写,试图解决这个问题。我所有的型号都是小写的。在所有模型都大写之前。谢谢你的自我回答。在我的例子中,它在本地环境中运行得非常好,但是当我想在AWS实例上部署时,它总是失败,但我不知道为什么。我了解到,当我要在远程服务器上部署服务时,迁移应该对远程服务器可见,这一点很重要。谢谢您的自我回答。在我的例子中,它在本地环境中运行得非常好,但是当我想在AWS实例上部署时,它总是失败,但我不知道为什么。我了解到,当我想在远程服务器上部署服务时,迁移应该对远程服务器可见,这一点很重要。
    country = models.ForeignKey(country, null=True, blank=True)
    
    country = models.ForeignKey(Country, null=True, blank=True)