cli icon indicating copy to clipboard operation
cli copied to clipboard

Insufficient permissions when setting up supabase-dbdev

Open bmitzkus opened this issue 8 months ago • 0 comments

Describe the bug I followed this post in order to setup my test environment. I am getting a ERROR: permission denied for function uninstall_extension_if_exists. Tests run as user postgres with insufficient permissions for functions pgtle.uninstall_extension[_if_exists] and pgtle.install_extension.

To Reproduce Steps to reproduce the behavior:

  1. Create a local supabase project
  2. Copy this code into supabase/tests/000_setup_tests_hook.sql:
create extension if not exists http with schema extensions;
create extension if not exists pg_tle;
drop extension if exists "supabase-dbdev";
select pgtle.uninstall_extension_if_exists('supabase-dbdev');
select
    pgtle.install_extension(
        'supabase-dbdev',
        resp.contents ->> 'version',
        'PostgreSQL package manager',
        resp.contents ->> 'sql'
    )
from http(
    (
        'GET',
        'https://api.database.dev/rest/v1/'
        || 'package_versions?select=sql,version'
        || '&package_name=eq.supabase-dbdev'
        || '&order=version.desc'
        || '&limit=1',
        array[
            ('apiKey', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InhtdXB0cHBsZnZpaWZyYndtbXR2Iiwicm9sZSI6ImFub24iLCJpYXQiOjE2ODAxMDczNzIsImV4cCI6MTk5NTY4MzM3Mn0.z2CN0mvO2No8wSi46Gw59DFGCTJrzM0AQKsu_5k134s')::http_header
        ],
        null,
        null
    )
) x,
lateral (
    select
        ((row_to_json(x) -> 'content') #>> '{}')::json -> 0
) resp(contents);
create extension "supabase-dbdev";
select dbdev.install('supabase-dbdev');

-- Drop and recreate the extension to ensure a clean installation
drop extension if exists "supabase-dbdev";
create extension "supabase-dbdev";
  1. run supabase test db

bmitzkus avatar Jun 25 '25 13:06 bmitzkus