diff --git a/wiki/docs/commands/project.md b/wiki/docs/commands/project.md index 2966f60..28eb6d2 100644 --- a/wiki/docs/commands/project.md +++ b/wiki/docs/commands/project.md @@ -99,7 +99,7 @@ Parameters: Examples: -- `shopware-cli project dump sw6 --host 127.0.0.1 --username root --password root --clean --anonymize +- `shopware-cli project dump sw6 --host 127.0.0.1 --username root --password root --clean --anonymize` ## shopware-cli project admin-api [method] [path] diff --git a/wiki/docs/guides/mysql-dump.md b/wiki/docs/guides/mysql-dump.md new file mode 100644 index 0000000..07d0990 --- /dev/null +++ b/wiki/docs/guides/mysql-dump.md @@ -0,0 +1,85 @@ +--- +title: Generating MySQL dumps +weight: 11 +--- + +shopware-cli has built-in support for generating MySQL dumps. The dump command is native implementation and does not use existing tools like `mysqldump`. + +Creating a MySQL dump is as simple as running the following command: + +```bash +shopware-cli project dump sw6 --host 127.0.0.1 --username root --password root +``` + +It's possible to use `--skip-lock-tables` to skip the lock tables command. This is useful for large databases. + +## Anonymizing data + +The `--anonymize` flag will anonymize known user data tables. The following tables are anonymized: + +[See here for the complete list](https://github.com/FriendsOfShopware/shopware-cli/blob/main/cmd/project/project_dump.go#L74) + +It's possible to customize the anonymization process by using the `dump.rewrite` configuration in the `shopware-cli.yml` file. + +```yaml +# .shopware-project.yml +dump: + rewrite: + : + # Rewrite column content new value + : "'new-value'" + # Use go-faker to generate data + : "faker.Internet().Email()" # See https://github.com/jaswdr/faker +``` + +## Ignoreing table content + +Some tables are not relevant for dumps, like log tables. To ignore some default tables, use the `--clean` flag. This will ignore the content of the following tables: + +- `cart` +- `customer_recovery` +- `dead_message` +- `enqueue` +- `increment` +- `elasticsearch_index_task` +- `log_entry` +- `message_queue_stats` +- `notification` +- `payment_token` +- `refresh_token` +- `version` +- `version_commit` +- `version_commit_data` +- `webhook_event_log` + +To ignore additional tables, use the `dump.ignore` configuration in the `shopware-cli.yml` file. + +```yaml +# .shopware-project.yml +dump: + nodata: + - +``` + +## Ignoring entire tables + +It's also possible to completely ignore a table **not only the content**. + +```yaml +# .shopware-project.yml +dump: + ignore: + - +``` + +## Adding a where clause + +It's possible to add a where clause to the export of a table. So only rows matching the where clause will be exported. + +```yaml +# .shopware-project.yml +dump: + where: + : 'id > 5' +``` +