This repo contains an easy to use class to dump a database using PHP. Currently MySQL and PostgreSQL are supported. Behind
the scences mysqldump
and pg_dump
are used.
Here's a simple example of how to create a dump of MySQL-datbase:
Spatie\DbDumper\Databases\MySql::create()
->setDbName($databaseName)
->setUserName($userName)
->setPassword($password)
->dumpToFile('dump.sql');
And here's the PostgreSQL version of that:
Spatie\DbDumper\Databases\PostgreSql::create()
->setDbName($databaseName)
->setUserName($userName)
->setPassword($password)
->dumpToFile('dump.sql');
Spatie is a webdesign agency based in Antwerp, Belgium. You'll find an overview of all our open source projects on our website.
For dumping MySQL-db's mysqldump
should be installed
For dumping PostgreSQL-db's pg_dump
should be installed.
You're free to use this package (it's MIT-licensed), but if it makes it to your production environment you are required to send us a postcard from your hometown, mentioning which of our package(s) you are using.
Our address is: Spatie, Samberstraat 69D, 2060 Antwerp, Belgium.
The best postcards will get published on the open source page on our website.
You can install the package via composer:
$ composer require spatie/db-dumper
This is the simplest way to create a dump of the db:
Spatie\DbDumper\Databases\MySql::create()
->setDbName($databaseName)
->setUserName($userName)
->setPassword($password)
->dumpToFile('dump.sql');
If the mysqldump
binary is installed in a non default location you can let the package know by using thesetDumpBinaryPath()
-function:
Spatie\DbDumper\Databases\MySql::create()
->setDumpBinaryPath('/custom/location')
->setDbName($databaseName)
->setUserName($userName)
->setPassword($password)
->dumpToFile('dump.sql');
Using an array:
Spatie\DbDumper\Databases\MySql::create()
->setDbName($databaseName)
->setUserName($userName)
->setPassword($password)
->includeTables(['table1', 'table2', 'table3'])
->dumpToFile('dump.sql');
Using a string:
Spatie\DbDumper\Databases\MySql::create()
->setDbName($databaseName)
->setUserName($userName)
->setPassword($password)
->includeTables('table1, table2, table3')
->dumpToFile('dump.sql');
Using an array:
Spatie\DbDumper\Databases\MySql::create()
->setDbName($databaseName)
->setUserName($userName)
->setPassword($password)
->excludeTables(['table1', 'table2', 'table3'])
->dumpToFile('dump.sql');
Using a string:
Spatie\DbDumper\Databases\MySql::create()
->setDbName($databaseName)
->setUserName($userName)
->setPassword($password)
->excludeTables('table1, table2, table3')
->dumpToFile('dump.sql');
This is the simplest way to create a dump of the db:
Spatie\DbDumper\Databases\PostgreSql::create()
->setDbName($databaseName)
->setUserName($userName)
->setPassword($password)
->dumpToFile('dump.sql');
If the pg_dump
binary is installed in a non default location you can let the package know by using the setDumpBinaryPath()
-function:
Spatie\DbDumper\Databases\PostgreSql::create()
->setDumpBinaryPath('/custom/location')
->setDbName($databaseName)
->setUserName($userName)
->setPassword($password)
->dumpToFile('dump.sql');
Using an array:
Spatie\DbDumper\Databases\PostgreSql::create()
->setDbName($databaseName)
->setUserName($userName)
->setPassword($password)
->setTables(array('table1', 'table2', 'table3'))
->dumpToFile('dump.sql');
Using a string:
Spatie\DbDumper\Databases\PostgreSql::create()
->setDbName($databaseName)
->setUserName($userName)
->setPassword($password)
->setTables('table1 table2 table3')
->dumpToFile('dump.sql');
Using an array:
Spatie\DbDumper\Databases\PostgreSql::create()
->setDbName($databaseName)
->setUserName($userName)
->setPassword($password)
->excludeTables(array('table1', 'table2', 'table3'))
->dumpToFile('dump.sql');
Using a string:
Spatie\DbDumper\Databases\PostgreSql::create()
->setDbName($databaseName)
->setUserName($userName)
->setPassword($password)
->excludeTables('table1 table2 table3')
->dumpToFile('dump.sql');
Please see CHANGELOG for more information what has changed recently.
$ composer test
Please see CONTRIBUTING for details.
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Initial PostgreSQL support was contributed by Adriano Machado.
Spatie is a webdesign agency based in Antwerp, Belgium. You'll find an overview of all our open source projects on our website.
The MIT License (MIT). Please see License File for more information.