2017-03-01 6 views
0

In Django habe ich meine Git mit Pull aus Repo aktualisiert. Und wenn ich renne python3 manage.py collectstatic wirft es "Myproject" Datenbank existiert nicht. Wirklich ich habe meine Projektdatenbank nicht, weil ich in Produktion nur prod_project Datenbank habe. Aber irgendwie django versucht myproject Datenbank von base.py eher zu laden, als von prod.py LadenDjango Projekteinstellungen für Produktion und Entwicklung

# base.py 
    DATABASES = {                   
      'default': {                  
       'ENGINE': 'django.db.backends.postgresql_psycopg2',       
       'NAME': 'myproject',              
       'USER': 'admin',                
       'PASSWORD': '*****', 
       'ATOMIC_REQUESTS': True,                
      },                    
     } 

# prod.py 
    from .base import *                 

    DEBUG = False                   
    TEMPLATE_DEBUG = DEBUG                

    DATABASES = {                   
     'default': {                  
      'ENGINE': 'django.db.backends.postgresql_psycopg2',       
      'NAME': 'prod_myproject',              
      'USER': 'admin',                
      'PASSWORD': '',                
     },                    
    }                      

    try:                     
     from .local import *                
    except ImportError:                 
     pass 

# local.py is empty file 

mein Projekt in apps/Projekt/prod Ordner ist:

/.git 
etc/ 
apps/ 
static/ 
myproject/ 
    settings/ 
    base.py 
    prod.py. 
    beta.py 
    wsgy.py 
manage.py 
+0

Wenn Sie manage.py öffnen und sich den darin enthaltenen Code ansehen, können Sie festlegen, welche Einstellungen verwendet werden sollen. Sie können das ändern, um die richtige Datei pro Umgebung zu verwenden. – Neelik

+0

Danke für die Antwort. In manage.py wird geschrieben, als wenn __name__ == "__main__": os.environ.setdefault ("DJANGO_SETTINGS_MODULE", "meinproject.settings") –

Antwort

0

Wenn ich Git-Pull-tat, init Py in den Einstellungen wurde ebenfalls geändert. Ich habe nichts davon gewusst. Der Entwickler, den ich kenne, hat mir geraten, diese Datei zu überprüfen. Ich habe festgestellt, dass eine andere Einstellungsdatei als Standard festgelegt wurde. Ich habe es korrigiert. Jetzt funktioniert es.

2

Wenn Sie diejenigen trennen 2 setting.py, sollten Sie festlegen, welche settings.py verwendet werden soll!

Sie können dies tun unten mit (mod_wsgi):

import os 
os.environ['DJANGO_SETTINGS_MODULE'] = 'your_proj/settings_location/prod' 

dies setzt django spezifische Einstellungen Datei zu verwenden.

oder Sie können mit diesem auf Shell tun:

python manage.py collectstatic --settings=your_proj/settings_location/prod 

diese geben die Einstellungen Datei, die Sie benötigen.

Ref: https://docs.djangoproject.com/en/1.10/topics/settings/#on-the-server-mod-wsgi

+0

Thx, aber ich benutze gunicorn –

+0

Dann könnten Sie diese Einstellungen auf wsgi hinzufügen .py Datei stattdessen :) – Beomi

+1

und wenn Sie diese Einstellungen verwenden möchten, nur zu manage.py Datei hinzufügen! – Beomi

Verwandte Themen