2014-07-23 44 views
2

我在我的一个Django应用程序中有2个数据库。这两个数据库位于同一网络上,即在局域网上。所以,我认为HOST IP将会不同。 不是吗?Django中的多个数据库

截至目前,为了测试我的代码,我提供了相同的HOST,但是不同的PORT。

所以,我的数据库设置如下: -

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',      
    } 
} 

当我syncdb它,它会返回一个错误说: -

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

但是,当我使用相同的端口,它的工作原理很好,但表格是在默认 DB。我知道默认情况下migrate命令适用于default DB。

1)但是如果我想要默认和不同的用户有不同的表格,我该怎么做?

回答

0

如果要迁移数据库的用户:

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

正如你可以在这里看到:https://docs.djangoproject.com/en/dev/topics/db/multi-db/#synchronizing-your-databases

如果你想在您检索的一项,选择您的数据库:

#default dabatase 
Author.objects.all() 

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

更多信息:https://docs.djangoproject.com/en/dev/topics/db/multi-db/#manually-selecting-a-database

+0

我知道你有什么provi DED。我想要的是,如果我想在默认情况下说'Authors'表,并且'Users'表是其他一些数据库?我会怎么做? – PythonEnthusiast

+0

你的意思是迁移? – Lara

+0

NO。我的意思是在默认和其他数据库中都不应该有表格。在默认情况下应该有1个表格,而在其他数据库中应该有另外一个表格。 – PythonEnthusiast