# Restoring PostgreSQL database

#### PostgreSQL database can be restored to its original location or to a new temporary directory.

***

## How to restore PostgreSQL database from backup

The first step in restoring a **PostgreSQL** database from backup is to restore the database files from storage to a temporary directory. These files will then be imported into the **PostgreSQL** database environment.

To restore files backed up using a file-level backup plan follow [this guide](https://helpcenter.xopero.com/xopero-one-en/backup-and-recovery/workstations-and-servers/file-level-backup-recovery). If your database was backed up using an **image-level backup**, use granular recovery to restore it as described in [this article](https://helpcenter.xopero.com/xopero-one-en/backup-and-recovery/workstations-and-servers/image-level-backup-recovery/granular-recovery).

{% hint style="warning" %}
**Xopero** recommends restoring the database files to their original directory to avoid potential permission issues in a different location.
{% endhint %}

Once the database files are restored, the next step is to import them into the **PostgreSQL** environment.

{% stepper %}
{% step %}
Log in to your database server using **SSH**.
{% endstep %}

{% step %}
Enter the following command:

```sql
psql dbname < dumpfile.sql
```

{% hint style="danger" %}
**This command does not create the database.** If you want to import the database dump file into a non-existing database, you must create the database first. If you want to restore the dump file to an existing database, you must drop the database, create it again, and then import the dump file.
{% endhint %}
{% endstep %}

{% step %}
The database has been successfully restored
{% endstep %}
{% endstepper %}
