From cd3f92778f97aaaa2a9150fa33299d8551e62f94 Mon Sep 17 00:00:00 2001
From: Pascal Zarrad
Date: Mon, 2 Nov 2026 12:59:58 +0100
Subject: [PATCH 1/3] docs(cli): document identity reset and clone dump options
---
.../tools/cli/project-commands/mysql-dump.md | 32 +++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/products/tools/cli/project-commands/mysql-dump.md b/products/tools/cli/project-commands/mysql-dump.md
index 1853636eef..077893ea6e 100644
--- a/products/tools/cli/project-commands/mysql-dump.md
+++ b/products/tools/cli/project-commands/mysql-dump.md
@@ -109,6 +109,8 @@ Some tables are not relevant for dumps, like log tables. To ignore some default
- `version_commit`
- `version_commit_data`
- `webhook_event_log`
+- `webhook_delivery`
+- `webhook_stream`
To exclude additional table data from every dump, use `dump.nodata` in `.config/shopware-project.yml`. Table schemas are still exported. Table names and glob patterns are supported; tables that are absent are skipped.
@@ -120,6 +122,36 @@ dump:
- 'my_plugin_log_*'
```
+## Resetting the shop identity
+
+When copying a shop to another environment, use `--reset-identity` to remove the source shop's app identity from the dump. The source database is unchanged.
+
+```bash
+shopware-cli project dump --reset-identity --output identity.sql
+```
+
+This omits `core.app.shopId` and `core.app.shopIdV2` from system configuration so the destination can generate its own shop ID. It also omits the following database records:
+
+- App records with completed or pending registrations
+- Integrations and API credentials belonging to those apps
+- Registration secrets retained for previously deleted apps
+
+The dump also omits related records linked through `CASCADE` foreign keys, such as app action buttons and their translations. Records linked through `SET NULL` foreign keys remain, but their references to omitted records are cleared. This preserves payment and shipping registrations and existing order references, allowing Shopware to reconnect the registrations when an app is reinstalled.
+
+Apps without completed or pending registration secrets are kept in the dump, including their related records. This includes local-only apps that have not registered with an app server. Unrelated API integrations also keep their records and credentials.
+
+Reinstall the removed apps in the destination shop to register them under its new identity. Their app files must be available in the destination project.
+
+Use `--clone-shop` as shorthand for `--clean --reset-identity` to also omit transient data such as pending jobs and webhook delivery logs. Combine it with `--anonymize` to anonymize personal data and extension-declared sensitive data.
+
+```bash
+shopware-cli project dump --clone-shop --anonymize --output clone.sql
+```
+
+Identity reset can be combined with the other dump options and project configuration. When rewriting a foreign key column or a referenced key, the only supported change is setting a nullable column to SQL `NULL`.
+
+If affected foreign keys share columns and their delete actions could conflict, the command stops with an error. This check uses the table definitions, so it also applies when the current rows do not overlap. Unsafe filters or relationships are reported before SQL content is written.
+
## Ignoring entire tables
It is also possible to completely ignore a table **not only the content**.
From 13863433ef5bf72a0dedc5292ef83247bd436cd0 Mon Sep 17 00:00:00 2001
From: Pascal Zarrad
Date: Mon, 2 Nov 2026 13:07:38 +0100
Subject: [PATCH 2/3] docs(cli): simplify identity reset explanation
---
products/tools/cli/project-commands/mysql-dump.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/products/tools/cli/project-commands/mysql-dump.md b/products/tools/cli/project-commands/mysql-dump.md
index 077893ea6e..76e2b32bcf 100644
--- a/products/tools/cli/project-commands/mysql-dump.md
+++ b/products/tools/cli/project-commands/mysql-dump.md
@@ -136,7 +136,7 @@ This omits `core.app.shopId` and `core.app.shopIdV2` from system configuration s
- Integrations and API credentials belonging to those apps
- Registration secrets retained for previously deleted apps
-The dump also omits related records linked through `CASCADE` foreign keys, such as app action buttons and their translations. Records linked through `SET NULL` foreign keys remain, but their references to omitted records are cleared. This preserves payment and shipping registrations and existing order references, allowing Shopware to reconnect the registrations when an app is reinstalled.
+The dump omits related records linked through `CASCADE` foreign keys, such as app action buttons and their translations. Records linked through `SET NULL` foreign keys remain, but their references to omitted records are cleared. This preserves payment and shipping registrations and existing order references, allowing Shopware to reconnect the registrations when an app is reinstalled.
Apps without completed or pending registration secrets are kept in the dump, including their related records. This includes local-only apps that have not registered with an app server. Unrelated API integrations also keep their records and credentials.
@@ -148,9 +148,9 @@ Use `--clone-shop` as shorthand for `--clean --reset-identity` to also omit tran
shopware-cli project dump --clone-shop --anonymize --output clone.sql
```
-Identity reset can be combined with the other dump options and project configuration. When rewriting a foreign key column or a referenced key, the only supported change is setting a nullable column to SQL `NULL`.
+Identity reset can be combined with the other dump options and project configuration.
-If affected foreign keys share columns and their delete actions could conflict, the command stops with an error. This check uses the table definitions, so it also applies when the current rows do not overlap. Unsafe filters or relationships are reported before SQL content is written.
+If affected foreign keys share columns and their delete actions could conflict, the command stops with an error.
## Ignoring entire tables
From 85faca9131db3fb800f9916ba5ebc03c409e6efd Mon Sep 17 00:00:00 2001
From: Pascal Zarrad
Date: Thu, 5 Nov 2026 14:43:38 +0100
Subject: [PATCH 3/3] docs: fix punctuation in identity reset guide
---
products/tools/cli/project-commands/mysql-dump.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/products/tools/cli/project-commands/mysql-dump.md b/products/tools/cli/project-commands/mysql-dump.md
index 76e2b32bcf..ec8c75e0f9 100644
--- a/products/tools/cli/project-commands/mysql-dump.md
+++ b/products/tools/cli/project-commands/mysql-dump.md
@@ -130,7 +130,7 @@ When copying a shop to another environment, use `--reset-identity` to remove the
shopware-cli project dump --reset-identity --output identity.sql
```
-This omits `core.app.shopId` and `core.app.shopIdV2` from system configuration so the destination can generate its own shop ID. It also omits the following database records:
+This omits `core.app.shopId` and `core.app.shopIdV2` from system configuration, so the destination can generate its own shop ID. It also omits the following database records:
- App records with completed or pending registrations
- Integrations and API credentials belonging to those apps