Export and import
In this guide, you’ll see how to export and import both the schema and data of a TypeDB database.
Understanding exports and imports
TypeDB supports exports databases into a binary format. The resulting file can be used to import the data on any database with compatible schema on a TypeDB server.
Using the export feature is the best way to migrate to a version of TypeDB that is not backward compatible with the current one in use. |
The exported binary file might be up to two times larger than the original database. Please ensure the disk has enough free capacity to store a file of this size.
Export
For the export to work make sure the TypeDB server with the database to export is working.
typedb server export --database=<database> --port=<server rpc port> --data=<data_filename>.typedb --schema=<schema_filename>.tql
Where:
-
<database>
— the name of the database to export data from; -
<server rpc port>
— the port number of the active local TypeDB server to export from; -
<data_filename>.typedb
— the name of the file to export data to; -
<schema_filename>.tql
— the name of the file to export schema to.
In versions previous to 2.6.0, named arguments (e.g., the |
Import
For the import to work make sure the target TypeDB server (where the database will be migrated to) is working.
typedb server import --database=<database> --port=<server rpc port> --data=<data_filename>.typedb --schema=<schema_filename>.tql
Where:
-
<database>
— the name of the database (non-existent or empty) to import data to; -
<server rpc port>
— the port number of the active local TypeDB server to import to; -
<data_filename>.typedb
— the name of the file to import data from; -
<schema_filename>.tql
— the name of the file to import schema from.
In versions previous to 2.6.0, the |
Troubleshooting
Follow this checklist if any errors occur:
-
Ensure that the correct
typedb
command is running with the correct TypeDB server (use./typedb
instead oftypedb
to use the TypeDB binary in the current directory instead of the default TypeDB server installation).
Exporting should be done with the same version as the server we are exporting from.
Importing should be done with the same version we are importing to. -
Ensure that the schema has been imported correctly to the new database.
Use TypeDB Studio or TypeDB Console to check the schema after import. -
Ensure that the correct path was specified for the datafile import.
If any errors persist, please join one of our communities and ask for assistance.
Version note
Since version 2.19.0
the TypeDB server export and import can process both schema and data.
Prior to the |
See the example of the migration commands for versions prior to 2.19.0
-
Export the schema into a file:
typedb console --command="database schema <database>" > <filename>.tql
-
Delete the first line of the exported tql file.
-
Export the data into a file:
typedb server export --database=<database> --port=<server rpc port> --file=<filename>.typedb
-
Create a database in the new server:
typedb console --command="database create <new-db>"
This and the following commands should be addressed to the new server, that will be importing the database. -
Import the schema into the new database:
typedb console --command="transaction <new-db> schema write" --command="source <filename>.tql" --command="commit"
-
Import the data into the new database:
typedb server import --database=<database> --port=<server rpc port> --file=<filename>.typedb