supabase / cli

Supabase CLI. Manage postgres migrations, run Supabase locally, deploy edge functions. Postgres backups. Generating types from your database schema.
https://supabase.com/docs/reference/cli/about
MIT License
1.07k stars 209 forks source link

Release 1.202.4 and later break seed on reset - Windows #2734

Closed DuncanLHS closed 1 month ago

DuncanLHS commented 1 month ago

Describe the bug Since Release 1.202.4, db reset no longer recognises my seed.sql file even though it exists in the expected location, supabase/seed.sql

To Reproduce Steps to reproduce the behavior:

  1. Update to supabase cli v1.202.4 or later
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior A clear and concise description of what you expected to happen.

Screenshots image

image

System information

sweatybridge commented 1 month ago

This is due to a bug in path separator handling. Could you try the beta release?

npx supabase@beta db reset
DuncanLHS commented 1 month ago

@sweatybridge That's fixed it. Thanks.

$ npx supabase@beta db reset
Need to install the following packages:
supabase@1.204.3
Ok to proceed? (y) y

Resetting local database...
Recreating database...
Setting up initial schema...
Seeding globals from roles.sql...
Applying migration ....
Seeding data from supabase/seed.sql...
Restarting containers...
DuncanLHS commented 2 weeks ago

Still seeing this issue on db pull and push:

npx supabase db pull --local
No seed files matched pattern: supabase/seed.sql
No seed files matched pattern: supabase/seed.sql

Not sure why as I don't believe the seed is used in these commands.

sweatybridge commented 2 weeks ago

Hi @DuncanLHS, this is due to a recent change we made that validates config.toml more rigorously.

You can avoid this log message by updating config.toml to disable seed config.

[db.seed]
enabled = false
sql_paths = []
DuncanLHS commented 2 weeks ago

@sweatybridge To clarify, my seed file does exist at that location but I still get the warning message that it doesn't exist. This was fixed on db reset but doesn't appear to have been a universal fix.

The new config settings are not set in my config as they're quite recent. In that case I would expect the default behaviour be that the seed is not performed after a migration as this is the precedent behaviour, in which case there would be no need to check for the seed file.

sweatybridge commented 2 weeks ago

We parse and validate all config at the start of the command, even if some parts of it are not used.

This was fixed on db reset but doesn't appear to have been a universal fix.

This is weird because reset shouldn't fix anything as the error is from config validation. Which directory are you running supabase commands from?

DuncanLHS commented 2 weeks ago

@sweatybridge See the original bug at the top here. db reset was fixed i.e. the No seed file matched pattern warning no longer shows with the db reset command. It was an issue with reading the file system correctly on windows I believe. However, I'm still seeing the warning when using db push and db pull