pmgdev / database-replicator-nette
This package is abandoned and no longer maintained.
No replacement package was suggested.
DatabaseReplicator extension for nette.
v0.1.1
2019-09-06 09:15 UTC
Requires
- php: >=7.1
- nette/di: ^2.4 || ^3.0
- pmgdev/database-replicator: ~0.1.2
Requires (Dev)
- nette/tester: ^2.2
- phpstan/phpstan: ^0.11.1
- tracy/tracy: ^2.6
This package is auto-updated.
Last update: 2022-01-18 16:55:41 UTC
README
This repository provide DatabaseReplicator and better integration to nette by extension. Where is written what needs to be implemented for smooth running.
Install by composer
composer require --dev pmgdev/database-replicator-nette
Before start
When everybody can have different database layout, then this extension is abstract class DatabaseReplicatorExtension24.
In first step you must extend this class and implement method buildDatabaseFactory. It is easy:
use PmgDev\DatabaseReplicator\DatabaseReplicatorExtension24 class MyDatabaseReplicatorExtension extends DatabaseReplicatorExtension24 { protected function buildDatabaseConnection( DI\ServiceDefinition $database, string $name, string $replicatorService ): void { $database ->setFactory(MyConnectionDatabase::class) ->setArguments([$replicatorService]); } }
That's all and register new extension.
extensions: databaseReplicator: MyDatabaseReplicatorExtension # use our new extension class databaseReplicator: sourceFile: %appDir%/../db/structure.sql admin: database: postgres username: postgres host: localhost password: dummy port: 5432 connections: test_db: # source database name # all properties copy from admin username: user password: dummy # database: you can set other database name test_data: # next test database with dummy data tempDir: %tempDir% # psql: # default is /usr/bin/psql
Now we have available service databaseReplicator.test_db.database and databaseReplicator.test_data.database instance of PmgDev\DatabaseReplicator\Database
$database = $container->getService('databaseReplicator.test_db.database'); $connection = $database->create(); // create database // make tests $database->drop();