2025-06-19 15:41:06,011 - MainThread - sqlmesh.cli - ERROR - Unhandled exception (__init__.py:53)
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlmesh/utils/concurrency.py", line 69, in _process_node
self.fn(node)
File "/usr/local/lib/python3.12/site-packages/sqlmesh/utils/concurrency.py", line 172, in <lambda>
lambda s_id: fn(snapshots_by_id[s_id]),
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlmesh/core/snapshot/evaluator.py", line 474, in <lambda>
lambda s: self._cleanup_snapshot(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlmesh/core/snapshot/evaluator.py", line 1038, in _cleanup_snapshot
evaluation_strategy.delete(
File "/usr/local/lib/python3.12/site-packages/sqlmesh/core/snapshot/evaluator.py", line 1535, in delete
self.adapter.drop_table(name)
File "/usr/local/lib/python3.12/site-packages/sqlmesh/core/engine_adapter/shared.py", line 334, in internal_wrapper
return func(*list_args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlmesh/core/engine_adapter/base.py", line 931, in drop_table
self._drop_object(name=table_name, exists=exists)
File "/usr/local/lib/python3.12/site-packages/sqlmesh/core/engine_adapter/base.py", line 959, in _drop_object
self.execute(exp.Drop(this=exp.to_table(name), kind=kind, exists=exists, **drop_args))
File "/usr/local/lib/python3.12/site-packages/sqlmesh/core/engine_adapter/base.py", line 2166, in execute
self._execute(sql, **kwargs)
File "/usr/local/lib/python3.12/site-packages/sqlmesh/core/engine_adapter/base.py", line 2187, in _execute
self.cursor.execute(sql, **kwargs)
psycopg2.errors.DependentObjectsStillExist: cannot drop table sqlmesh__intermediate.intermediate__int_lesson_events__extracted__2348405816 because other objects depend on it
DETAIL: view sqlmesh__intermediate.intermediate__int_lessons__unioned__2208384159 depends on table sqlmesh__intermediate.intermediate__int_lesson_events__extracted__2348405816
HINT: Use DROP ... CASCADE to drop the dependent objects too.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/sqlmesh/cli/__init__.py", line 51, in _debug_exception_handler
return func()
^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlmesh/cli/__init__.py", line 29, in <lambda>
return handler(sqlmesh_context, lambda: func(*args, **kwargs))
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlmesh/core/analytics/__init__.py", line 82, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlmesh/cli/main.py", line 570, in janitor
ctx.obj.run_janitor(ignore_ttl, **kwargs)
File "/usr/local/lib/python3.12/site-packages/sqlmesh/core/analytics/__init__.py", line 110, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlmesh/core/context.py", line 820, in run_janitor
self._run_janitor(ignore_ttl)
File "/usr/local/lib/python3.12/site-packages/sqlmesh/core/context.py", line 2691, in _run_janitor
self.snapshot_evaluator.cleanup(
File "/usr/local/lib/python3.12/site-packages/sqlmesh/core/snapshot/evaluator.py", line 472, in cleanup
concurrent_apply_to_snapshots(
File "/usr/local/lib/python3.12/site-packages/sqlmesh/utils/concurrency.py", line 170, in concurrent_apply_to_snapshots
return concurrent_apply_to_dag(
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlmesh/utils/concurrency.py", line 212, in concurrent_apply_to_dag
).run()
^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlmesh/utils/concurrency.py", line 64, in run
self._finished_future.result()
File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 456, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
sqlmesh.utils.concurrency.NodeExecutionFailedError: Execution failed for node SnapshotId<"dwh"."intermediate"."int_lesson_events__extracted": 172656272>
When running the Janitor against a PostgreSQL database, objects with dependencies (e.g., views built on tables) aren’t dropped first, causing the subsequent
DROP TABLEoperation to fail due to those existing dependencies.Traceback
sqlmesh v0.192.2, dialect postgres, database postgres