2014-07-23 2 views
2

J'ai 2 DB dans mon application Django. Les deux DB sont sur le même réseau, c'est-à-dire sur LAN. Donc, je suppose que l'IP HÔTE sera différent. Ce ne serait pas?Plusieurs bases de données dans Django

En ce moment, pour tester mon code, j'ai fourni le même HOST mais PORT différent.

Donc, mes paramètres de DB sont les suivantes: -

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'vms_db', 
     'USER': 'root', 
     'PASSWORD': '', 
     'HOST': '127.0.0.1', 
     'PORT': '8000',   
    }, 
    'users': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'aramex_vms_db',    
     'USER': 'root', 
     'PASSWORD': '', 
     'HOST': '127.0.0.1',     
     'PORT': '8080',      
    } 
} 

Quand je syncdb, il renvoie une erreur en disant: -

django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1' (111)") 

Mais quand j'utilise le même port, il fonctionne bien mais les tables sont faites en par défaut DB. Je sais que la commande migrate fonctionne par défaut sur default DB.

1) Mais que se passe-t-il si je veux qu'il y ait différentes tables par défaut et différentes pour les utilisateurs, comment vais-je faire?

Répondre

0

Si vous souhaitez migrer vos utilisateurs de base de données:

$ ./manage.py migrate --database=users 

Comme vous pouvez le voir ici: https://docs.djangoproject.com/en/dev/topics/db/multi-db/#synchronizing-your-databases

Si vous souhaitez sélectionner votre base de données pendant que vous récupérez une entrée:

#default dabatase 
Author.objects.all() 

#custom database 
Author.objects.using('DATABASE_NAME').all() 

Plus d'informations: https://docs.djangoproject.com/en/dev/topics/db/multi-db/#manually-selecting-a-database

+0

Je sais ce que vous avez provi ded. Je veux que si je veux dire la table 'Authors' par défaut et la table' Users' est une autre DB? Comment ferais-je cela? – PythonEnthusiast

+0

Vous voulez migrer? – Lara

+0

NO. Je veux dire qu'aucune table ne devrait être là à la fois par défaut et par d'autres DB. Il devrait y avoir 1 table par défaut et une autre table dans d'autres DB., – PythonEnthusiast

Questions connexes