尝试通过settings.py
连接到Oracle DBDATABASES = {
'default': {
'ENGINE': 'django.db.backends.oracle',
'NAME': 'Hostname:Port/Service name not SID',
'USER': 'Username',
'PASSWORD': 'Password',
}
}
根据我在网上找到的内容,如果我没有SID,那应该是我通过服务名称连接到Oracle DB的方式。但我仍然收到错误django.db.utils.DatabaseError: ORA-12154: TNS:could not resolve the connect identifier specified
如果我放弃将这些详细信息放在settings.py
中,我只使用cx_Oracle
提供的连接字符串,
dsn_tns = cx_Oracle.makedsn('Hostname', 'Port',
service_name='Service name not SID')
connection = cx_Oracle.connect('Username', 'Password', dsn_tns)
我连接得很好。是否有新语法连接到settings.py的服务名称?如果我可以通过连接字符串进行连接,那么尝试通过settings.py进行连接是否有意义?
答案 0 :(得分:0)
试试这个。
settings.py
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
EHS_CONF_PATH = os.path.join(BASE_DIR, 'arquivo.conf')
DATABASES = {
'default': {
'ENGINE': os.environ['DB_ENGINE'],
'NAME': os.environ['DB_NAME'],
'HOST': os.environ.get('DB_HOST', 'localhost'),
'PORT': os.environ.get('DB_PORT', '1521'),
'USER': os.environ.get('DB_USER', 'user'),
'PASSWORD': os.environ.get('DB_PASS', "pass")
}
}
arquivo.conf
DB_NAME=XE
DB_USER=user
DB_PASS=pass
DB_HOST=10.7.0.140 <-- ip host
DB_PORT=1521
DB_ENGINE=django.db.backends.oracle
我的密码包含在&#39; @&#39;
时出现问题