Your Bubble app has two separate databases: one for the development version and one for the live version. Most of the time you keep them apart, so you can test freely without touching your users' data. Sometimes, though, it's useful to copy data from one to the other, for example to test with realistic data, or to fill your live app with content you've prepared in development.
This article explains how copying works, when to use it, and how to copy in each direction.
Copying replaces the data in the database you copy to. The existing data there is permanently deleted and replaced with a copy of the data from the other database.
How copying works
When you copy data, Bubble takes the records from one database and uses them to replace the records in the other. You choose which data type to copy, and you confirm the action before anything happens.
Copying only moves data. Your data types, fields, and option sets are part of your app's structure, so they're updated when you deploy your app, not when you copy data.
Option | What it does |
Copy Live to Development | Replaces data in your development database with a copy of your live data |
Copy Development to Live | Replaces data in your live database with a copy of your development data |
When to copy your database
Direction | Common reasons | Things to keep in mind |
Live to development | Testing new features or debugging with realistic data, or reproducing an issue a user reported | Your live data may include personal information about your users. Everyone with access to your app's development version can see it once it's copied. |
Development to live | Filling a new app with content before launch, like products, categories, or settings you've prepared in development | Once your app has real users, copying to live replaces their data. In most cases, you'll only want to do this before launch. |
If you only need to move a few records, it can be safer to export them from one database and import them into the other, instead of replacing a whole data type.
Copy live data to development
1. Open the App data section
In the editor, go to the Data tab and open the App data section.
2. Open the copy options
Click Copy and restore database in the upper right corner, then select Copy Live to Development.
3. Choose what to copy
Under Data type to copy, select the data type you want to copy.
4. Confirm the copy
Type Live to Development in the Type to confirm field. This step is there to make sure you don't replace data by accident.
5. Start the copy
Click Copy to Development. Your development data is replaced with a copy of your live data.
Be careful when you copy a single data type. If its records are linked to records of other data types, those links may point to records that don't exist in the other database, or point to the wrong ones. For example, if you copy Orders but not Users, each order may refer to a user who isn't there. To keep relationships between your data intact, it's often safer to copy all data types at once.
Copy development data to live
Copying to live replaces the data your users see and use. Double-check that you've selected the right data type before you confirm.
1. Open the App data section
In the editor, go to the Data tab and open the App data section.
2. Open the copy options
Click Copy and restore database in the upper right corner, then select Copy Development to Live.
3. Choose what to copy
Under Data type to copy, select the data type you want to copy.
4. Confirm the copy
Type Development to Live in the Type to confirm field.
5. Start the copy
Click Copy to Live. Your live data is replaced with a copy of your development data.
Be careful when you copy a single data type. If its records are linked to records of other data types, those links may point to records that don't exist in the other database, or point to the wrong ones. For example, if you copy Orders but not Users, each order may refer to a user who isn't there. To keep relationships between your data intact, it's often safer to copy all data types at once.
FAQ: Copying your database
Does copying change my data types or fields?
Does copying change my data types or fields?
No. Copying only moves records. Changes to data types, fields, and option sets reach your live app when you deploy.
However, if you copy a single data type and its records are linked to records of other data types, those links may point to records that don't exist in the other database, or point to the wrong ones. For example, if you copy Orders but not Users, each order may refer to a user who isn't there. To keep relationships between your data intact, it's often safer to copy all data types at once.
Is the original data kept when I copy?
Is the original data kept when I copy?
The data in the database you copy from stays as it is. The data in the database you copy to is permanently replaced.
Can I copy just a few records instead of a whole data type?
Can I copy just a few records instead of a whole data type?
Not with this feature. To move specific records, export them as a CSV or JSON file from one database and import them into the other.
Can I undo a copy?
Can I undo a copy?
Copying permanently replaces the data in the target database. You may be able to return to an earlier state with Restore database, which restores your database to a point in time within your plan's restore window.




