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
Post a Comment