> ## Documentation Index
> Fetch the complete documentation index at: https://thenile.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Backup and Restore

In case database backup and restore is required, please follow the steps below. Our team is here to assist you throughout the process.

> [!TIP]
>
> This is available for paid tiers only. We hope to make this process self-serve
> soon.

## 1. Notify Us

Send a message to our team via Slack (if we have set up one for you) or email at [support@thenile.dev](mailto:support@thenile.dev) and include **URGENT** in the title. Include the following details to expedite the recovery process:

* Database name
* Approximate time when the issue occurred
* Do you wish to restore to new schema in same database or to a different database? (if a different database, please provide its name as well).

## 2. Acknowledgment

Once we receive your message, we will acknowledge it within **15 minutes**. If you do not receive an acknowledgment, please follow up.

## 3. Backup Availability

We take **three backups daily** to ensure your data is well-protected. Upon your request, an appropriate backup, based on the time when the data issue occurred, will be restored in a separate schema within your database or alternatively into the original schema in an empty database of your choice.

In the case of separate schema, the backup schema will have a name in the format: `<original_schema_name>_bkp`.
For example, if your original schema is `sales_data`, the backup schema will be named: `sales_data_bkp`

## 4. How to Restore Data

> [!TIP]
>
> Only needed if data is restored within the same database into another schema

You can restore the data from the backup schema using SQL commands. Below is an example query to copy data back to the original schema:

```sql theme={null}
-- Recover data for a specific tenant:
SET nile.tenant_id='018ff561-ae16-7c9e-93c6-8482f9952c4f';
INSERT INTO expense_report_items
SELECT * FROM public_bkp.expense_report_items;

-- recover data for shared table
RESET nile.tenant_id;
INSERT INTO flights select * from flights;

-- recover data for multiple tenants:

-- 1. generate statements:
RESET nile.tenant_id;
SELECT 'SET nile.tenant_id='''||id||'''; INSERT INTO expense_report_items SELECT * FROM public_bkp.expense_report_items;' from tenants where name like '%customer%';

-- 2. Run the resulting statements:
 SET nile.tenant_id='179027f2-e184-4df7-a568-2be746898be2'; INSERT INTO expense_report_items SELECT * FROM public_bkp.expense_report_items;
 SET nile.tenant_id='018ff04c-9dfe-7fbd-8d1c-96ccdbe24e11'; INSERT INTO expense_report_items SELECT * FROM public_bkp.expense_report_items;
 SET nile.tenant_id='018ff04d-7ded-7719-a2d3-79f65d19f2e8'; INSERT INTO expense_report_items SELECT * FROM public_bkp.expense_report_items;
 SET nile.tenant_id='108124a5-2e34-418a-9735-b93082e9fbf2'; INSERT INTO expense_report_items SELECT * FROM public_bkp.expense_report_items;
 SET nile.tenant_id='84a4358a-15a4-42ba-8606-ca948fb730c2'; INSERT INTO expense_report_items SELECT * FROM public_bkp.expense_report_items;
 SET nile.tenant_id='a02748b7-76c9-4765-b230-dea566e38e5d'; INSERT INTO expense_report_items SELECT * FROM public_bkp.expense_report_items;
 SET nile.tenant_id='cea8b9b8-ec0a-4144-ae3a-b67834079951'; INSERT INTO expense_report_items SELECT * FROM public_bkp.expense_report_items;
```

## Need Assistance?

If you encounter any issues during the recovery process or require additional help, please do not hesitate to contact our team. We’re here to help ensure a smooth recovery.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.