pmgdev / database-replicator-nette
该软件包已被废弃,不再维护。未建议替代软件包。
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
此仓库提供DatabaseReplicator并通过扩展更好地集成到nette。在此处记录了实现平稳运行所需的内容。
通过composer安装
composer require --dev pmgdev/database-replicator-nette
开始之前
当每个人都有不同的数据库布局时,这个扩展是抽象类DatabaseReplicatorExtension24。
第一步你必须扩展这个类并实现方法buildDatabaseFactory。这很简单
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]); } }
就这样,并注册新的扩展。
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
现在我们有可用的服务databaseReplicator.test_db.database和databaseReplicator.test_data.database,它们是PmgDev\DatabaseReplicator\Database
的实例。
$database = $container->getService('databaseReplicator.test_db.database'); $connection = $database->create(); // create database // make tests $database->drop();