2017-03-16 6 views
0

Ich versuche, die lokale Arbeit auf dem Server bereitzustellen, aber ich habe Probleme mit psycopg2, wenn ich migrieren auf Python manage.py ausführen.Fehler bei der Migration - psycopg2 Django

EINSTELLUNG:

DATABASES = { 
    'default':{ 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': '******', 
     'USER': '*****', 
     'PASSWORD': '**********', 
     'HOST': '*******', 
     'PORT': '5432' 
    } 
} 

MODEL

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) 

MIGRATION FILE Das Problem ist: ...

  ('brand', models.CharField(blank=True, max_length=30, null=True)), 
      ('exp_month', models.CharField(blank=True, max_length=2, null=True)), 
      ('exp_year', models.CharField(blank=True, max_length=2, null=True)), 
      ('country', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='common.country')), 
      ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')), 
      ('state', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='common.state')), 

.....

ERROR: 
Running migrations: 
    Applying contenttypes.0001_initial... OK 
    Applying contenttypes.0002_remove_content_type_name... OK 
    Applying auth.0001_initial... OK 
    Applying auth.0002_alter_permission_name_max_length... OK 
    Applying auth.0003_alter_user_email_max_length... OK 
    Applying auth.0004_alter_user_username_opts... OK 
    Applying auth.0005_alter_user_last_login_null... OK 
    Applying auth.0006_require_contenttypes_0002... OK 
    Applying auth.0007_alter_validators_add_error_messages... OK 
    Applying auth.0008_alter_user_username_max_length... OK 
    Applying profile.0001_initial...Traceback (most recent call last): 
    File "/home/instantuser/app/lib/python3.5/site-packages/django/db/backends/utils.py", line 64, in execute 
return self.cursor.execute(sql, params) 
psycopg2.ProgrammingError: relation "common_country" does not exist 


**django.db.utils.ProgrammingError: relation "common_country" does not exist** 

Was fehlt mir hier?

+0

Warum denken Sie, dass das Benutzermodell das Problem verursacht? Können Sie auch Ihr Ländermodell zeigen? Sind beide Modelle in der gleichen Django App? –

+0

@MananMehta hey, aus diesem Grund: Anwenden von Profil.0001_initial. Alles funktioniert gut lokal mit dem SQL-Dev-Server. Das passiert nur, wenn ich psycopg2 benutze. aber ich bin auch hinzufügen Ländermodelle –

+0

@AndreMendes Haben Sie versucht, was ich in der Antwort vorgeschlagen? –

Antwort

-1
  1. Kommentar Land Modell und

python manage.py makemigrations app_name

  1. Kommentar- Land Modell laufen und den gleichen obigen Befehl (Land Modell ausgeführt wird neu erstellt)

  2. Abschließend die Änderungen anwenden auf db mit migrieren:

python manage.py migrate

0

diese ersetzen:

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

mit:

country = models.ForeignKey(Country, null=True, blank=True) 

und das sollte es tun, glaube ich.

+0

Sorry, ich habe alles in Kleinbuchstaben geändert, um das Problem zu beheben. Alle meine Modelle sind Kleinbuchstaben. bevor alle Modelle groß geschrieben wurden. –

0

Ich habe das Problem gefunden. Es war ein Fehler von mir. Ich hatte ein .gitignore gesetzt, um Migrationsdateien und -ordner zu ignorieren. Daher wurde der Migrationsordner, in dem sich das Land befand, nicht an den Master-Zweig gesendet.

ist behoben. Danke für die Hilfe.

Verwandte Themen