2014-07-23 48 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