Skip to main content

Copying the database

This section covers how to copy the content of the development database to the live database, and vice versa.

Written by Sofia Maconi

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.

The Copy and restore database dropdown in the App data section

3. Choose what to copy

The Copy Live to Development popup

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.

The Copy and restore database dropdown in the App data section

3. Choose what to copy

Under Data type to copy, select the data type you want to copy.

The Copy Development to Live popup

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?

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?

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?

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?

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.

Did this answer your question?