-
Notifications
You must be signed in to change notification settings - Fork 130
Closed
Description
Problem is that if you want to use multiple backends in the same Django app for example Mssql together with oracle DB, code like this
https://github.com/microsoft/mssql-django/blob/master/mssql/functions.py#L274
totally override functionality and it is impossible to use Oracle connector.
Trace:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 82, in _execute
return self.cursor.execute(sql)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/oracle/base.py", line 534, in execute
return self.cursor.execute(query, self._param_generator(params))
cx_Oracle.DatabaseError: ORA-00900: invalid SQL statement
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.7/site-packages/django/core/management/base.py", line 330, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.7/site-packages/django/core/management/base.py", line 371, in execute
output = self.handle(*args, **options)
File "/srv/django_project/project/search/management/commands/es_feed_index.py", line 101, in handle
self.feed_elasticsearch(tenant, site, document_classes=options['document_classes'])
File "/srv/django_project/project/search/management/commands/es_feed_index.py", line 80, in feed_elasticsearch
task_add_state=task_state)
File "/srv/django_project/project/search/mappings/default.py", line 410, in sync
dict_data = cls.get_all_index_data(index_name, object_ids, additional_data, tenant_id, queryset_filter)
File "/srv/django_project/project/search/mappings/kondela.py", line 72, in get_all_index_data
join_values=cls.get_join_values(tenant_id),
File "/srv/django_project/project/es_importer/utils.py", line 196, in get_model_values
join_values, tenant_id)
File "/srv/django_project/project/es_importer/utils.py", line 83, in combine_results
for joined_item in joined_items:
File "/usr/local/lib/python3.7/site-packages/django/db/models/query.py", line 287, in __iter__
self._fetch_all()
File "/usr/local/lib/python3.7/site-packages/cacheops/query.py", line 271, in _fetch_all
return self._no_monkey._fetch_all(self)
File "/usr/local/lib/python3.7/site-packages/django/db/models/query.py", line 1308, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File "/usr/local/lib/python3.7/site-packages/django/db/models/query.py", line 111, in __iter__
for row in compiler.results_iter(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size):
File "/usr/local/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1108, in results_iter
results = self.execute_sql(MULTI, chunked_fetch=chunked_fetch, chunk_size=chunk_size)
File "/usr/local/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1143, in execute_sql
sql, params = self.as_sql()
File "/usr/local/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 513, in as_sql
where, w_params = self.compile(self.where) if self.where is not None else ("", [])
File "/usr/local/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 430, in compile
sql, params = node.as_sql(self, self.connection)
File "/usr/local/lib/python3.7/site-packages/django/db/models/sql/where.py", line 81, in as_sql
sql, params = compiler.compile(child)
File "/usr/local/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 428, in compile
sql, params = vendor_impl(self, self.connection)
File "/usr/local/lib/python3.7/site-packages/django/db/models/lookups.py", line 132, in as_oracle
return lookup.as_sql(compiler, connection)
File "/usr/local/lib/python3.7/site-packages/django/db/models/lookups.py", line 396, in as_sql
return self.split_parameter_list_as_sql(compiler, connection)
File "/usr/local/lib/python3.7/site-packages/mssql/functions.py", line 100, in split_parameter_list_as_sql
cursor.execute("IF OBJECT_ID('tempdb.dbo.#Temp_params', 'U') IS NOT NULL DROP TABLE #Temp_params; ")
File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 98, in execute
return super().execute(sql, params)
File "/usr/local/lib/python3.7/site-packages/raven/contrib/django/client.py", line 127, in execute
return real_execute(self, sql, params)
File "/usr/local/lib/python3.7/site-packages/cacheops/transaction.py", line 97, in execute
result = self._no_monkey.execute(self, sql, params)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 66, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.7/site-packages/django/db/utils.py", line 90, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 82, in _execute
return self.cursor.execute(sql)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/oracle/base.py", line 534, in execute
return self.cursor.execute(query, self._param_generator(params))
django.db.utils.DatabaseError: ORA-00900: invalid SQL statement
Metadata
Metadata
Assignees
Labels
No labels