Lovable Cloud Storage Export: How to Move Your Files to Supabase
Last updated: By The Migrator Team
A Lovable Cloud storage export has two parts: getting the files out, and getting them into a Supabase Storage bucket in exactly the same place. If paths change, every image URL and every database column that stores a file path breaks.
This guide shows how to keep paths identical, how to treat public and private buckets, what to do about large files, and how the migrator tool uploads folders for you.
Step 1: Download your files from Lovable Cloud
1Open storage
In Lovable, open the Cloud area and the storage view. Note every bucket name and whether it is public or private.

Lovable Cloud storage export: the storage view listing buckets and files 2Download each bucket
Download the files for each bucket and keep the folder structure. Put each bucket into a folder named after it.
Step 2: Create matching buckets in Supabase
In the Supabase dashboard, open Storage and create each bucket with the same name. Match the public or private setting, because public buckets serve files at a public URL while private buckets need signed URLs.
Bucket names allow lowercase letters, numbers, dots, dashes and underscores. Recreate any storage policies (RLS on storage.objects) that your schema migrations did not already create.
Lovable Cloud storage export: upload files and keep folder paths
Upload to the same relative path as before: a file at avatars/42/photo.png in the old project must be at avatars/42/photo.png in the new one. You can drag whole folders into the Supabase dashboard, use the Storage API, or let the migrator tool upload a dropped folder, keeping every path.
The migrator uses upsert, so you can run an upload twice without errors. It handles files up to 8 MB; upload larger files directly from the Supabase dashboard or with the Storage API described in the Supabase Storage docs.
Step 4: Check URLs and database references
- Open a public file URL in the browser and confirm it loads.
- Check a few database rows that store file paths or full URLs.
- If your database stores full URLs with the old project domain, update them with an
update ... set url = replace(url, 'old', 'new')statement. - Test an upload from the app to prove policies work for new files.
Frequently asked questions
Will my existing image URLs keep working?
Paths will match, but the domain changes with the project. Update any full URLs stored in your database, or load images through a relative path.
What is the maximum file size?
Check the current limit for your Supabase plan in the Storage settings. The migrator tool uploads files up to 8 MB; larger files should be uploaded from the dashboard.
Do I need to recreate storage policies?
Yes if they were not part of your migration files. Policies on storage.objects control who can read and write files.
Public or private bucket?
Match the original. Public buckets serve files by URL; private buckets need signed URLs from your app.
Can I skip storage?
Yes. The step is optional if your app does not use file uploads.
Related guides
How to Migrate from Lovable Cloud to Supabase
The complete pillar guide: schema, data, users, files and functions, end to end.
Lovable Edge Functions: How to Deploy Them on Your Own Supabase Project
CLI commands to deploy your functions and re-add every secret.
How to Connect Your Lovable App to Your New Supabase Project
Update .env and config.toml, redeploy and test the switch safely.