Skip to content
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,13 @@ Starting from Neo4j 2025.01, seed from URI can also be used in combination with
[[neo4j-seed-providers]]
== Seed providers in Neo4j

The seed can either be a full backup, a differential backup (see <<cloud-seed-provider, `CloudSeedProvider`>>), or a dump from an existing database.
The seed can be a full backup, a differential backup (see <<cloud-seed-provider, `CloudSeedProvider`>>), or a dump from an existing database.
When using `CloudSeedProvider`, the URI can point also to a folder which contains a backup chain.
The sources of seeds are called _seed providers_.

Backups have a `.backup` extension, while the dump file can have whatever extension the user chooses.
For example, the backup file can be called `myBackup.backup`, while the dump can be called `myDump.dump` or also `myBackup.backup`, or any other name.

The mechanism is pluggable, allowing new sources of seeds to be supported (see link:https://www.neo4j.com/docs/java-reference/current/extending-neo4j/project-setup/#extending-neo4j-plugin-seed-provider[Java Reference -> Implement custom seed providers] for more information).

The product has built-in support for seed from a mounted file system (file), FTP server, HTTP/HTTPS server, Amazon S3, Google Cloud Storage, and Azure Cloud Storage.
Expand Down Expand Up @@ -114,6 +118,7 @@ include::partial$/aws-s3-overrides.adoc[]
include::partial$/aws-s3-credentials.adoc[]

. Create database from `myBackup.backup`.
This backup can be a full backup, a differential backup, or a dump file.
+
Using Cypher 5:
+
Expand All @@ -136,6 +141,7 @@ CREATE DATABASE foo OPTIONS { seedURI: 's3://myBucket/myBackup.backup' }
include::partial$/gcs-credentials.adoc[]

. Create database from `myBackup.backup`.
This backup can be a full backup, a differential backup, or a dump file.
+
Using Cypher 5:
+
Expand All @@ -158,6 +164,7 @@ CREATE DATABASE foo OPTIONS { seedURI: 'gs://myBucket/myBackup.backup' }
include::partial$/azb-credentials.adoc[]

. Create database from `myBackup.backup`.
This backup can be a full backup, a differential backup, or a dump file.
+
Using Cypher 5:
+
Expand Down Expand Up @@ -190,7 +197,7 @@ The `S3SeedProvider` supports:
[NOTE]
====
Neo4j comes bundled with necessary libraries for AWS S3 connectivity.
Therefore, if you use `S3SeedProvider`, `aws cli` is not required (as it instead is with `CloudSeedProvider`).
Therefore, if you use `S3SeedProvider`, `aws cli` is not required as it is for `CloudSeedProvider`.
====

The `S3SeedProvider` requires additional configuration.
Expand Down Expand Up @@ -236,31 +243,41 @@ Where `<accessKey>` and `<secretKey>` are provided by AWS.
| `file:`
| `FileSeedProvider`
| `file:/tmp/backup1.backup`
`file:/tmp/backup1.dump`

| `ftp:`
| `URLConnectionSeedProvider`
| `\ftp://myftp.com/backups/backup1.backup`
`\ftp://myftp.com/backups/backup1.dump`

| `http:`
| `URLConnectionSeedProvider`
| `\http://myhttp.com/backups/backup1.backup`
`\http://myhttp.com/backups/backup1.dump`

| `https:`
| `URLConnectionSeedProvider`
| `\https://myhttp.com/backups/backup1.backup`
`\https://myhttp.com/backups/backup1.dump`

| `s3:`
| `S3SeedProvider` label:deprecated[Deprecated in 5.26], +
`CloudSeedProvider`
| `s3://mybucket/backups/backup1.backup`
`s3://mybucket/backups/backup1.dump`
`s3://mybucket/backups/` (folder containing a backup chain, only used by `CloudSeedProvider`)

| `gs:`
| `CloudSeedProvider`
| `gs://mybucket/backups/backup1.backup`
`gs://mybucket/backups/backup1.dump`
`gs://mybucket/backups/` (folder containing a backup chain)

| `azb:`
| `CloudSeedProvider`
| `azb://mystorageaccount.blob/backupscontainer/backup1.backup`
`azb://mystorageaccount.blob/backupscontainer/backup1.dump`
`azb://mystorageaccount.blob/backupscontainer/` (folder containing a backup chain)
|===


Expand Down