class BaseSQLTemplateRawManager(models.Manager):
template_name = None
template_context_data = None
def get_template_name(self):
if self.template_name is None:
raise ImproperlyConfigured(
"SQLRawTemplateBase requires either a definition of "
"'template_name' or an implementation of 'get_template_name()'"
)
return self.template_name
def get_template_context_data(self, **kwargs):
if self.template_context_data is not None:
kwargs.update(self.template_context_data)
return kwargs
def get_queryset(self):
return self._queryset_class(model=self.model, using=self._db, hints=self._hints)\
.raw(
render_to_string(
self.get_template_name(),
self.get_template_context_data()
)
)
class CarsSQLTemplateRawManager(BaseSQLTemplateRawManager):
template_name = "dealer/SQL/truebil-cars.sql"
class Cars(AbsBaseCar):
SQL = CarsSQLTemplateRawManager()
APPOINTMENT_ID = models.CharField(max_length=100)
STORE_NAME = models.CharField(max_length=100)
BOUGHT_DATE = models.CharField(max_length=100)
BOUGHT_MONTH = models.CharField(max_length=100)
WEEK = models.CharField(max_length=100)
WEEK_OF_MONTH = models.CharField(max_length=100)
STATE = models.CharField(max_length=100)
UNSOLD = models.CharField(max_length=100)
DEALER_CODE = models.CharField(max_length=100)
DEALER_NAME = models.CharField(max_length=100)
BOUGHT = models.CharField(max_length=100)
DELAER_REGION = models.CharField(max_length=100)
MDBP = models.CharField(max_length=100)
SALE_DATE = models.CharField(max_length=100)
FIRST_SI = models.CharField(max_length=100)
LATEST_SO = models.CharField(max_length=100)
@property
def MMV(self):
return f"{self.MAKE}{self.MODEL}{self.VARIANT}".upper()
@property
def MV(self):
return f"{self.MODEL}{self.VARIANT}".upper()
class Meta:
managed = False
Exception:
Traceback (most recent call last):
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/snowflake/connector/cursor.py", line 791, in execute
Error.errorhandler_wrapper(
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/snowflake/connector/errors.py", line 272, in errorhandler_wrapper
handed_over = Error.hand_to_other_handler(
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/snowflake/connector/errors.py", line 327, in hand_to_other_handler
cursor.errorhandler(connection, cursor, error_class, error_value)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/snowflake/connector/errors.py", line 206, in default_errorhandler
raise error_class(
snowflake.connector.errors.ProgrammingError: 000904 (42000): SQL compilation error: error line 1 at position 7
invalid identifier 'SALES_TRANSACTIONS.ID'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Users/chandanojha/vsprojects/spider/dealer/management/commands/dealers_match.py", line 40, in handle
Cars24VsSpinnyMatch().match(),
File "/Users/chandanojha/vsprojects/spider/dealer/match/mixing.py", line 89, in match
self.df = self.get_merged_dataframe()
File "/Users/chandanojha/vsprojects/spider/dealer/match/mixing.py", line 81, in get_merged_dataframe
right=self.get_dataframe_x(),
File "/Users/chandanojha/vsprojects/spider/dealer/match/mixing.py", line 41, in get_dataframe_x
read_frame(
File "/Users/chandanojha/vsprojects/spider/dealer/dataframe.py", line 27, in read_frame
[r for r in recs],
File "/Users/chandanojha/vsprojects/spider/dealer/dataframe.py", line 27, in
[r for r in recs],
File "/Users/chandanojha/vsprojects/spider/dealer/dataframe.py", line 6, in get_records
yield tuple(getattr(row, col) for col in fields)
File "/Users/chandanojha/vsprojects/spider/dealer/dataframe.py", line 6, in
yield tuple(getattr(row, col) for col in fields)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/models/query_utils.py", line 150, in get
instance.refresh_from_db(fields=[field_name])
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/models/base.py", line 637, in refresh_from_db
db_instance = db_instance_qs.get()
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/models/query.py", line 431, in get
num = len(clone)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/models/query.py", line 262, in len
self._fetch_all()
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/models/query.py", line 1324, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/models/query.py", line 51, in iter
results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/models/sql/compiler.py", line 1169, in execute_sql
cursor.execute(sql, params)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/backends/utils.py", line 98, in execute
return super().execute(sql, params)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/backends/utils.py", line 66, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/utils.py", line 90, in exit
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/snowflake/connector/cursor.py", line 791, in execute
Error.errorhandler_wrapper(
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/snowflake/connector/errors.py", line 272, in errorhandler_wrapper
handed_over = Error.hand_to_other_handler(
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/snowflake/connector/errors.py", line 327, in hand_to_other_handler
cursor.errorhandler(connection, cursor, error_class, error_value)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/snowflake/connector/errors.py", line 206, in default_errorhandler
raise error_class(
django.db.utils.ProgrammingError: SQL compilation error: error line 1 at position 7
invalid identifier 'SALES_TRANSACTIONS.ID'
settings.py
"snowflake":{ 'ENGINE': 'django_snowflake', 'NAME': 'DB_NAME, 'SCHEMA': 'SCHEMA_NAME', 'WAREHOUSE': 'WH', 'USER': 'USER', 'PASSWORD': 'password, 'ACCOUNT': 'account' }
QuerySet db = 'snowflake' Cars.SQL.using(db)
models.py
Exception:
Traceback (most recent call last): File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/backends/utils.py", line 84, in _execute return self.cursor.execute(sql, params) File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/snowflake/connector/cursor.py", line 791, in execute Error.errorhandler_wrapper( File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/snowflake/connector/errors.py", line 272, in errorhandler_wrapper handed_over = Error.hand_to_other_handler( File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/snowflake/connector/errors.py", line 327, in hand_to_other_handler cursor.errorhandler(connection, cursor, error_class, error_value) File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/snowflake/connector/errors.py", line 206, in default_errorhandler raise error_class( snowflake.connector.errors.ProgrammingError: 000904 (42000): SQL compilation error: error line 1 at position 7 invalid identifier 'SALES_TRANSACTIONS.ID' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/Users/chandanojha/vsprojects/spider/dealer/management/commands/dealers_match.py", line 40, in handle Cars24VsSpinnyMatch().match(), File "/Users/chandanojha/vsprojects/spider/dealer/match/mixing.py", line 89, in match self.df = self.get_merged_dataframe() File "/Users/chandanojha/vsprojects/spider/dealer/match/mixing.py", line 81, in get_merged_dataframe right=self.get_dataframe_x(), File "/Users/chandanojha/vsprojects/spider/dealer/match/mixing.py", line 41, in get_dataframe_x read_frame( File "/Users/chandanojha/vsprojects/spider/dealer/dataframe.py", line 27, in read_frame [r for r in recs], File "/Users/chandanojha/vsprojects/spider/dealer/dataframe.py", line 27, in
[r for r in recs],
File "/Users/chandanojha/vsprojects/spider/dealer/dataframe.py", line 6, in get_records
yield tuple(getattr(row, col) for col in fields)
File "/Users/chandanojha/vsprojects/spider/dealer/dataframe.py", line 6, in
yield tuple(getattr(row, col) for col in fields)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/models/query_utils.py", line 150, in get
instance.refresh_from_db(fields=[field_name])
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/models/base.py", line 637, in refresh_from_db
db_instance = db_instance_qs.get()
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/models/query.py", line 431, in get
num = len(clone)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/models/query.py", line 262, in len
self._fetch_all()
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/models/query.py", line 1324, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/models/query.py", line 51, in iter
results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/models/sql/compiler.py", line 1169, in execute_sql
cursor.execute(sql, params)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/backends/utils.py", line 98, in execute
return super().execute(sql, params)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/backends/utils.py", line 66, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/utils.py", line 90, in exit
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/snowflake/connector/cursor.py", line 791, in execute
Error.errorhandler_wrapper(
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/snowflake/connector/errors.py", line 272, in errorhandler_wrapper
handed_over = Error.hand_to_other_handler(
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/snowflake/connector/errors.py", line 327, in hand_to_other_handler
cursor.errorhandler(connection, cursor, error_class, error_value)
File "/Users/chandanojha/vsprojects/spider/.venv/lib/python3.9/site-packages/snowflake/connector/errors.py", line 206, in default_errorhandler
raise error_class(
django.db.utils.ProgrammingError: SQL compilation error: error line 1 at position 7
invalid identifier 'SALES_TRANSACTIONS.ID'