python - django.db.utils.DatabaseError: ORA-12154: TNS:could not resolve the connect identifier specified -


trying connect oracle db via settings.py

databases = {     'default': {         'engine': 'django.db.backends.oracle',          'name': 'hostname:port/service name not sid',           'user': 'username',                               'password': 'password',                                          } } 

based on have found online, supposed how connect oracle db via service name if not have sid. still error django.db.utils.databaseerror: ora-12154: tns:could not resolve connect identifier specified

if forgo placing these details in settings.py , use connection strings provided cx_oracle,

dsn_tns = cx_oracle.makedsn('hostname', 'port',                               service_name='service name not sid') connection = cx_oracle.connect('username', 'password', dsn_tns) 

i connect fine. there new syntax connect service name settings.py? there point in trying connect via settings.py if can connect via connection strings?

try this.

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 

i had problem when password contained '@'


Comments