This tool helps you to dump db fixtures from given database and can import existing db fixtures. Credentials and configurations are read from an .env file.
Within a PHP project (composer)
composer require --dev ixnode/bash-db-dumper
vendor/bin/db-dumper -V
db-dumper 0.1.1 (2023-28-01 18:07:16) - Björn Hempel <bjoern@hempel.li>
git clone git@github.com:ixnode/bash-db-dumper.git && cd bash-db-dumper
bin/db-dumper -V
db-dumper 0.1.1 (2023-28-01 18:07:16) - Björn Hempel <bjoern@hempel.li>
Add at least the following configuration variables to your .env file:
MYSQLDUMP_DATABASE_URL
MYSQLDUMP_IGNORED_TABLES
###> table-dumper (local docker settings) ###
MYSQLDUMP_DATABASE_URL=mysql://<db-user>:<db-pass>@<db-host>:<db-port>/<db-name>?serverVersion=<version>
MYSQLDUMP_IGNORED_TABLES=
###< table-dumper (local docker settings) ###
See .env.dist
file for other examples and configuration variables like:
MYSQLDUMP_FILTERED_TABLES
MYSQLDUMP_TABLES_NO_DATA
MYSQLDUMP_TABLES_ONLY_DATA
MYSQLDUMP_VIEWS
MySQL dump settings: Views will be imported after importing all tables to be sure all needed tables are exists
#=
Variable | Description | Example |
---|---|---|
MYSQLDUMP_DATABASE_URL |
Contains the database credentials. | mysql://user:pass@localhost:3306/db?serverVersion=8.0 |
MYSQLDUMP_IGNORED_TABLES |
Contains a comma-separated list of tables which are to be ignored by the dump command. Asterisk can be used to specify several tables at once. | table1,table2,cache_* |
MYSQLDUMP_FILTERED_TABLES |
Used to filter the content of tables. As an example only export data that is not deleted or is hidden (deleted = 0 AND hidden = 0 ). |
table3:"deleted = 0 AND hidden = 0",table4:"deleted = 0 AND hidden = 0" |
$MYSQLDUMP_FILTERED_TABLES_DELETED_HIDDEN |
A shortcut for MYSQLDUMP_FILTERED_TABLES with --where="deleted = 0 AND hidden = 0" . Contains a comma-separated list of tables to be filtered. |
table3,table4 |
MYSQLDUMP_TABLES_NO_DATA |
Contains a comma-separated list of tables from which no data should be dumped. Asterisk can be used to specify several tables at once. | table5,table6_* |
MYSQLDUMP_TABLES_ONLY_DATA |
Contains a comma-separated list of tables from which no structure of tables should be dumped. Asterisk can be used to specify several tables at once. | table7,table8_* |
MYSQLDUMP_VIEWS |
Contains a comma-separated list of views. Views will be imported after the tables are imported. Asterisk can be used to specify several tables at once. | view1,view2_* |
vendor/bin/db-dumper dump
bin/db-dumper dump
All dumps are then located in ./fixtures/db/*.sql
.
vendor/bin/db-dumper import
bin/db-dumper import
Shows the parameters and arguments of the tool.
vendor/bin/db-dumper -h
db-dumper 0.1.1 (2023-28-01 18:07:16) - Björn Hempel <bjoern@hempel.li>
Usage: db-dumper [options...] dump
Usage: db-dumper [options...] import
-e, --env-path Contains the environment path (.env.local)
-dcs, --disable-column-statistics Disable mysql column statistics
-t, --with-time Also outputs the time to each log entry (default: false).
-v, --verbose Set output to verbose (default: false).
-c, --color Colored output (default: false).
-d, --debug Set to debug mode. No longer performs any actions.
Shows only the commands. (default: false).
-l, --print-log Print the log file
-u, --update-version Shows this script with updated version read from VERSION
-h, --help Shows this help.
-V, --version Shows the version number.
The command only shows the commands and does not execute them:
vendor/bin/db-dumper dump -d
vendor/bin/db-dumper import -d
bin/db-dumper dump -d
bin/db-dumper import -d
vendor/bin/db-dumper -l
vendor/bin/version-manager --patch
bin/db-dumper -u
rm bin/db-dumper && mv bin/db-dumper.tmp bin/db-dumper
vi CHANGELOG.md
This tool is licensed under the MIT License - see the LICENSE.md file for details