pm-connect / db-diff
A simple php based tool/application for comparing and generating a diff/comparison of any two given databases. Supports multiple database drivers.
Installs: 22
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 1
Open Issues: 0
Type:project
Requires
- php: >=5.6.4
- barryvdh/laravel-debugbar: ^2.3
- barryvdh/laravel-ide-helper: ^2.2
- doctrine/dbal: ^2.5
- laravel/framework: 5.3.*
- pm-connect/db-diff-utils: 1.*
Requires (Dev)
- fzaninotto/faker: ~1.4
- mockery/mockery: 0.9.*
- phpspec/phpspec: ^3.2
- phpunit/phpunit: ~5.0
- symfony/css-selector: 3.1.*
- symfony/dom-crawler: 3.1.*
README
A simple php based database structure diff tool that you can self host.
Looking to build a diff tool your self? Check out db-diff-utils.
Installation
Installation can be done through either composer, or using docker.
Using Composer
You will need to install the project using a web server using php7+.
composer create-project --prefer-dist pm-connect/db-diff db-diff
Using Docker
There is an available docker image and docker file with this project that will give you a running application within seconds.
Either create a machine from the jralph/db-diff
docker image, or run the Dockerfile
and create your own.
Note: When using docker to run the diff application, diffs will be run using the sync queue. This means that you will only be able to run one diff at a time and may be limited to the http request duration.
Config
You will need to set a database configuration to save the diff logs, this is done in a .env
file, which you will need to create. An example is provided below.
Once done, you will also need to run the migrations.
php artisan migrate
You can also optionally setup a queue to enable better performance for diff running.
Example .env
File
APP_ENV=local
APP_KEY=base64:1v0HsWYBr3Onmy5WNqIIs2/s3d0moHRg9IPK4ZD0/rY=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://db-diff.dev
DB_CONNECTION=sqlite
QUEUE_DRIVER=database
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
Queues
If you opt to use a queue driver that is not sync
, you will need to run the build-in queue worker through the command line.
php artisan queue:listen --queue=default --timeout=120
You may also want to set the timeout to a greater value, depending on the size of the databases you are planning to diff. Generally a 60 second timeout works well in most cases.
For more information on running queue workers, please see here.
Issues
Please submit any issues using GitHubs build in issue management.