Django中的多个数据库
我在一个Django应用里有两个数据库。这两个数据库在同一个网络上,也就是局域网。所以,我想HOST的IP地址应该是不同的。难道不是吗?
目前为了测试我的代码,我给了相同的HOST但不同的端口。
所以,我的数据库设置如下:
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)")
但是当我使用相同的端口时,它就能正常工作,不过表格是放在默认数据库里的。我知道迁移命令默认是作用于default
数据库的。
1) 可是如果我想让默认数据库和用户数据库有不同的表,该怎么做呢?
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