2013-07-26 14 views
10

Al momento ho un app Django sto sviluppando sul mio PC con i dati in mio db ma quando provo esecuzione di questa applicazione su un server di prova ottengo l'errore sottoDjango DatabaseError: relazione "django_site"

DatabaseError: relation "django_site" does not exist 
LINE 1: ..."django_site"."domain", "django_site"."name" FROM "django_si... 

può Qualcuno mi dice perché sto ricevendo questo errore please.thanks

+2

Hai sincronizzare il database sul server di prova? – Brandon

+0

sì ho fatto syncd l'essere e questo è quando ottengo quell'errore ho anche provato a eseguire manage.py runserver e ancora l'errore è sempre lo stesso – user1940979

+0

Hai alterato o non includere l'impostazione SITE_ID in settings.py tale che il SITE_ID non correlato a un record nella tabella django_site? – Brandon

risposta

2

non è stato in grado di risolvere questo un modo django così ho provato ad usare sql, ho creato un dump del solo database come questo.

pg_dump mypgdatabase | gzip -c > mypgdatabase.dump.out.gz 

poi spostati al server

scp /path/to/mypgdatabase.dump.out.gz my_remote_server 

poi ricreato sul server come questo

psql -d mypgdatabase -f mypgdatabase.dump.out 

quindi eseguire

./manange.py migrate --all 

e tutti quando bene.

4

Non riesco a vedere i tuoi modelli o quali app stai usando, ma la mia ipotesi è che tu stia usando django_site (modello del sito) e non hai " django.contrib.sites 'in INSTALLED_APPS.

Se sono corretto, aggiungere semplicemente 'django.contrib.sites', al numero INSTALLED_APPS.

+1

ho installato django.contrib.sites – user1940979

4

Si è verificato questo strano problema durante l'avvio di un nuovo database e l'utilizzo di django-debug-toolbar. Rimosso dal INSTALLED_APPS ed è stato in grado di eseguire syncdb. Quindi ha aggiunto nuovamente debug_toolbar e funzionava ancora bene.

Se si utilizza la barra degli strumenti di django-debug, provare a commentare debug_toolbar nelle app installate e riprovare.


Aggiornamento: Si prega di seguire le istruzioni per l'impostazione esplicita: http://django-debug-toolbar.readthedocs.org/en/1.2.2/installation.html#explicit-setup

+1

Ho provato questo, non ha funzionato. Sono su django 1.8 e utilizzo postgresql – Rexford

+0

Questo ha funzionato per me. 'django == 1.8.1' e postgres – connorbode

7

Si può essere chiamata un oggetto sito prima di creare il modello sito (prima syncdb)

es: sito = sito. objects.get (id = settings.SITE_ID)

3

ho stesso problema e risolto in questo modo:

  1. aggiungere SITE_ID=1 in settings.py
  2. eseguire questo comando:

    pitone manage.py migrare

5

Questo problema continua ad affliggere molti, me compreso.Anche se un processo noioso, questo approccio mi salva il potere del cervello:

Disattiva tutte le applicazioni esterne nel INSTALLED_APPS, tranne che le proprie applicazioni, in questo modo:

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'django.contrib.sites', 
    'django.contrib.flatpages', 
    'main', # This is my own app. 

    # 'compressor', 
    # 'ckeditor', 
    # 'imagekit', 
    # 'debug_toolbar', 
    # 'rest_framework', 
    # 'allauth', 
    # 'allauth.account', 
    # 'allauth.socialaccount', 

    # 'allauth.socialaccount.providers.google', 
    # 'allauth.socialaccount.providers.facebook', 
) 

Run

python manage.py makemigrations 
python manage.py migrate 

Poi, decommentare tutte le altre app, quindi ripetere makemigrations e migrare sopra.

che funziona tutto il tempo per me

+1

Grazie a Dio non è solo io che ha questo problema. –

-2

Assicurarsi inoltre SITE_ID = 1 viene prima della definizione del database in settings.py

+1

Non vedo come ciò possa influire su qualcosa. I DATABASE e SITE_ID sono entrambe variabili che vengono assegnate alle stringhe e quelle impostazioni vengono caricate da Django, indipendentemente dall'ordine in cui non avrà alcun effetto (a differenza dell'ordine delle app nell'elenco). – Wernight

1

paio di cose che si possono provare e verificare:

  • Il tuo settings.py dovrebbe avere un SITE_ID di solito = 1
  • Cambia l'ordine del tuo INSTALLED_APPS in il tuo settings.py e prova a commentare temporaneamente gli articoli.
  • Come indicato da Geo, controllare che non si stia chiamando un oggetto sito prima di creare il modello del sito (ad esempio: site = Site.objects.get(id=settings.SITE_ID)).

Una volta che hai funzionato, ricorda di manage.py makemigrations APP_NAME come ho trovato casi in cui sembra aver evitato il passaggio di commento.

0

ho superato questo problema con il seguente ordine in INSTALLED_APPS:

INSTALLED_APPS = (
    'django.contrib.sites', 
    'allauth',                 
    'allauth.account',               
    # my other apps, 
) 
Problemi correlati