= KeePassXC - Import/Export Operations
include::.sharedheader[]
:imagesdir: ../images

// tag::content[]
== Importing External Databases
KeePassXC allows your to import external databases from the following options:

* Comma-Separated Values (CSV) file
* 1Password OPVault
* KeePass 1 Database

=== Importing CSV File
If you have been saving your URLs, usernames, passwords, and so on in a CSV file, you can migrate all that information from the CSV file to KeePassXC and start using KeePassXC to maintain your data.

To open the CSV file, perform the following steps:

1. Open KeePassXC.

2. Click Import from CSV button on the welcome screen or use the menu Database > Import > CSV File.

3. Navigate to the location of the your CSV file on your computer and open the file. The new database wizard will appear. Follow the steps of creating a new database in Chapter 1.

4. After saving your new database file, the CSV import wizard will appear:
+
.CSV Import Wizard
image::csv_import.png[,80%]

Your CSV file gets imported to KeePassXC and the data is converted to the KeePassXC format for further usage and maintenance. The new database file is saved on to your computer with the default `.kdbx` extension.

=== Importing 1Password OPVault
Save your 1Password Vault locally to create an OPVault directory. Please see 1Password instructions on how to do this. Once an OPVault is created, perform the following steps:

1. Open KeePassXC.

2. Use the menu Database > Import > 1Password Vault. Select the OPVault to import.

3. Enter the password for your OPVault to unlock and import.

=== Importing KeePass 1 Database
KeePass 1 database is an older format of the database created using legacy version of KeePass. KeePassXC lets your import this older format of the database and you can seamlessly start using this database in your new KeePassXC application.

To import a KeePass 1 database file in KeePassXC, perform the following steps:

1. Open KeePassXC.

2. Click Import from KeePass 1 button on the welcome screen or use the menu Database > Import > KeePass 1 Database.

3. Navigate to the location of the your legacy KeePass 1 database file (`.kdb`) on your computer and open the file. You are prompted for the password and the Key file for your `.kdb` file.

4. Enter the password for your old `.kdb` file and click *OK*. You are prompted for provide a name for the new database format that KeePassXC recognizes.

5. Provide a name for the new database format, select a folder on your computer to save the file, and click Save.

6. The data from the `.kdb` file gets imported and converted to the new format, which is compatible with KeePassXC. You can now start using the new database file (`.kdbx`) in KeePassXC.

== Exporting Databases
KeePassXC supports multiple ways to export your database for transfer to another program or to print out and archive. To export your database into the KDB XML format, you must use the KeePassXC Command Line Interface program: `keepassxc-cli export <database.kdbx>`.

WARNING: Exporting your database will result in all of your passwords and sensitive information being stored unencrypted. We do not recommend saving your exported database for long periods of time as that can cause compromise.

.Database export menu
image::export_database.png[,80%]

The HTML export file is intended to be human-readable (viewed/printed in a web browser) rather than machine-readable (re-imported into another database file). The intention of HTML export is to provide a "paper backup" functionality for those who want to ensure access to their passwords in case of catastrophic failure of IT infrastructure. To create a paper backup, export the database to an HTML file, print the file with your web browser, then delete the file.

WARNING: Creating a paper backup exposes your passwords to potentially insecure components, like printer drivers on your computer or software inside the printer. Make sure all these components can be trusted.

For more information, check out the https://keepassxc.org/blog/2020-10-03-paper-backup/[blog article about paper backups].

// end::content[]
