Skip to content

Invalid connection option "statement_cache_mode" when running supabase db diff --linked #2077

@ScottAtRedHawk

Description

@ScottAtRedHawk

Describe the bug
When running supabase db diff --linked, I get an error about an invalid connection option: statement_cache_mode.

To Reproduce
Steps to reproduce the behavior:

  1. Run supabase db diff --linked
  2. See the error below:
Connecting to remote database...
Creating shadow database...
Setting up initial schema...
Applying migration 20231130160712_remote_schema.sql...
Applying migration 20231201162243_remote_schema.sql...
Applying migration 20231204154357_remote_schema.sql...
Applying migration 20231204183300_remote_schema.sql...
Applying migration 20231205173517_remote_schema.sql...
Applying migration 20231206173610_remote_schema.sql...
Applying migration 20231211162949_remote_schema.sql...
Applying migration 20231212195413_added_decrement_useful_life_function.sql...
Applying migration 20231212212502_remote_schema.sql...
Applying migration 20231212213007_remove_is_nullable_equipment_daily_limit_in_cents.sql...
Applying migration 20231212221841_create_internal_settings_table.sql...
Applying migration 20231213053051_create_get_internal_settings_value_function.sql...
Applying migration 20231213172222_remove_is_nullable_equipment_daily_limit_in_cents_again.sql...
Applying migration 20231213175532_remove_is_nullable_daily_reimbursement_amount_in_cents.sql...
Applying migration 20231213182848_add_companies_created_and_updated_by_fkeys.sql...
Applying migration 20231213211413_drop_internal_settings_environment_name_column.sql...
Applying migration 20231213231850_drop_internal_settings_table.sql...
Applying migration 20231213232128_create_do_not_sync_schema_and_env_variables_table.sql...
Applying migration 20231214170119_create_get_env_variables_function.sql...
Applying migration 20231214170413_create_http_post_delete_old_reports_function.sql...
Applying migration 20231214174221_schedule_delete_old_reports.sql...
Applying migration 20231214174430_schedule_recalculate_useful_life.sql...
Applying migration 20231214221054_consumable_weekly_limit_in_cents_not_nullable.sql...
Applying migration 20231215195501_schedule_create_empty_reimbursement_sets.sql...
Applying migration 20231216185059_add_http_post_calculate_reimbursement_set_totals.sql...
Applying migration 20231216203255_add_calculate_reimbursement_set_totals_trigger.sql...
Applying migration 20231216213203_fix_calculate_reimbursement_set_totals_trigger_and_function.sql...
Applying migration 20231218153028_calculate-consumable-reimbursement-adjustments.sql...
Applying migration 20231218155631_modify_calculate_reimbursement_set_totals_trigger_function.sql...
Applying migration 20231221060645_change_calculate_reimbursement_set_totals_functions_to_use_status.sql...
Applying migration 20231221165016_revoke_grants_from_anon_on_do_not_sync_schema.sql...
Applying migration 20231221181228_revoke_grants_from_authenticated_on_do_not_sync_schema.sql...
Applying migration 20240103172203_added_cleanup_old_recipt_images_function.sql...
Applying migration 20240104214217_updated_cleanup_old_recipt_images_func_to_provide_old_paths.sql...
Applying migration 20240308192800_remote_schema.sql...
Applying migration 20240311182516_clear-scheduled-jobs.sql...
Applying migration 20240311183440_schedule-delete-old-reports.sql...
Applying migration 20240311204117_schedule-recalculate-useful-life.sql...
Applying migration 20240311234559_dropped-unused-sql-functions-simplified-reimbursement-trigger-functions.sql...
Applying migration 20240314184501_remote_schema.sql...
Applying migration 20240314230439_created_add_reimbursement_to_reimbursement_set_function.sql...
Applying migration 20240315040811_modified_add_reimbursement_to_reimbursement_set_func.sql...
Applying migration 20240315145156_update_service_role_user_permissions.sql...
Applying migration 20240315145400_fixed_errors_with_add_reimbursement_to_reimbursement_set_func.sql...
Applying migration 20240315202246_cleanup_and_reschedule_calculate_adjustments.sql...
Applying migration 20240315210443_remote_schema.sql...
Applying migration 20240318215953_added_create_adjustment_for_backdated_reimbursement_function.sql...
Applying migration 20240318230730_added_increment_user_totals_function.sql...
Applying migration 20240319152413_added_remove_reimbursement_from_reimbursement_set_function.sql...
Applying migration 20240319201453_added_undo_adjustments_func.sql...
Applying migration 20240319204009_updated_undo_adjustments_func.sql...
Applying migration 20240320144802_create_http_post_calculate_consumable_payments.sql...
Applying migration 20240320145025_schedule_http_post_calculate_consumable_payments.sql...
Applying migration 20240320194758_added_update_reimbursement_sets_func.sql...
Diffing schemas: do_not_sync,extensions,public
error diffing schema: error running container: exit 1:
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/schemainspect/misc.py", line 9, in connection_from_s_or_c
    s_or_c.engine
AttributeError: 'Session' object has no attribute 'engine'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 145, in __init__
    self._dbapi_connection = engine.raw_connection()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 3293, in raw_connection
    return self.pool.connect()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 452, in connect
    return _ConnectionFairy._checkout(self)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 1269, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 716, in checkout
    rec = pool._do_get()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/pool/impl.py", line 170, in _do_get
    self._dec_overflow()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/pool/impl.py", line 167, in _do_get
    return self._create_connection()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 393, in _create_connection
    return _ConnectionRecord(self)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 678, in __init__
    self.__connect()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 903, in __connect
    pool.logger.debug("Error on connect(): %s", e)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 898, in __connect
    self.dbapi_connection = connection = pool._invoke_creator(self)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/create.py", line 645, in connect
    return dialect.connect(*cargs, **cparams)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 616, in connect
    return self.loaded_dbapi.connect(*cargs, **cparams)
  File "/usr/local/lib/python3.9/site-packages/psycopg2/__init__.py", line 121, in connect
    dsn = _ext.make_dsn(dsn, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/psycopg2/extensions.py", line 167, in make_dsn
    parse_dsn(dsn)
psycopg2.ProgrammingError: invalid dsn: invalid connection option "statement_cache_mode"


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/bin/migra", line 8, in <module>
    sys.exit(do_command())
  File "/usr/local/lib/python3.9/site-packages/migra/command.py", line 121, in do_command
    status = run(args)
  File "/usr/local/lib/python3.9/site-packages/migra/command.py", line 86, in run
    m = Migration(
  File "/usr/local/lib/python3.9/site-packages/migra/migra.py", line 39, in __init__
    self.changes.i_target = get_inspector(
  File "/usr/local/lib/python3.9/site-packages/schemainspect/get.py", line 14, in get_inspector
    c = connection_from_s_or_c(x)
  File "/usr/local/lib/python3.9/site-packages/schemainspect/misc.py", line 14, in connection_from_s_or_c
    return s_or_c.connection()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2031, in connection
    return self._connection_for_bind(
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2047, in _connection_for_bind
    return trans._connection_for_bind(engine, execution_options)
  File "<string>", line 2, in _connection_for_bind
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/state_changes.py", line 139, in _go
    ret_value = fn(self, *arg, **kw)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 1143, in _connection_for_bind
    conn = bind.connect()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 3269, in connect
    return self._connection_cls(self)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 147, in __init__
    Connection._handle_dbapi_exception_noconnection(
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2431, in _handle_dbapi_exception_noconnection
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 145, in __init__
    self._dbapi_connection = engine.raw_connection()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 3293, in raw_connection
    return self.pool.connect()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 452, in connect
    return _ConnectionFairy._checkout(self)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 1269, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 716, in checkout
    rec = pool._do_get()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/pool/impl.py", line 170, in _do_get
    self._dec_overflow()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/pool/impl.py", line 167, in _do_get
    return self._create_connection()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 393, in _create_connection
    return _ConnectionRecord(self)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 678, in __init__
    self.__connect()
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 903, in __connect
    pool.logger.debug("Error on connect(): %s", e)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 146, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/pool/base.py", line 898, in __connect
    self.dbapi_connection = connection = pool._invoke_creator(self)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/create.py", line 645, in connect
    return dialect.connect(*cargs, **cparams)
  File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 616, in connect
    return self.loaded_dbapi.connect(*cargs, **cparams)
  File "/usr/local/lib/python3.9/site-packages/psycopg2/__init__.py", line 121, in connect
    dsn = _ext.make_dsn(dsn, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/psycopg2/extensions.py", line 167, in make_dsn
    parse_dsn(dsn)
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) invalid dsn: invalid connection option "statement_cache_mode"

(Background on this error at: https://sqlalche.me/e/20/f405)

Try rerunning the command with --debug to troubleshoot the error.

Expected behavior
After running supaabse db dif --linked, I'd expect to see no schema changes found or the schema changes listed out.

System information
Rerun the failing command with --create-ticket flag.

  • Ticket ID: e3280d54a6654d36a286566c01e8f1e9
  • Version of OS: macOS Sonoma Apple M2 Max
  • Version of CLI: 1.150.0
  • Version of Docker: 4.28.0
  • Versions of services:
SERVICE IMAGE LOCAL LINKED
supabase/postgres 15.1.0.133 15.1.0.133
supabase/gotrue v2.144.1 v2.144.1
postgrest/postgrest v11.2.2 v11.2.2
supabase/realtime v2.25.66 -
supabase/storage-api v0.48.2 v0.48.2
supabase/edge-runtime v1.38.0 -
supabase/studio 20240301-0942bfe -
supabase/postgres-meta v0.79.5 -
supabase/logflare 1.4.0 -
bitnami/pgbouncer 1.20.1-debian-11-r39 -
darthsim/imgproxy v3.8.0 -

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions