diff --git a/composer.json b/composer.json index 5b886cb..32c9258 100644 --- a/composer.json +++ b/composer.json @@ -14,7 +14,7 @@ "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", "symfony/framework-bundle": "^4.0", "symfony/doctrine-bridge": "^4.2", - "prowebce/database-anonymizer": "0.0.5" + "prowebce/database-anonymizer": "dev-task-force-anonymization" }, "require-dev": { "doctrine/annotations": "^1.6", @@ -26,6 +26,7 @@ "matthiasnoback/symfony-dependency-injection-test": "^3.1", "doctrine/doctrine-bundle": "^1.11" }, + "minimum-stability": "dev", "suggest": { "doctrine/annotations": "To enable annotations.", "symfony/console": "To enable console commands.", diff --git a/src/Command/AnonymizeCommand.php b/src/Command/AnonymizeCommand.php index f8056ac..dd36c08 100644 --- a/src/Command/AnonymizeCommand.php +++ b/src/Command/AnonymizeCommand.php @@ -126,6 +126,9 @@ protected function configure() ->addOption('connection', 'C', InputOption::VALUE_REQUIRED, 'Name of the connection to database.') ->addOption('annotations', 'a', InputOption::VALUE_NONE, 'Use annotations. "em" option must be provided.') ->addOption('em', null, InputOption::VALUE_REQUIRED, 'Entity manager.') + + ->addOption('number_of_parts', null, InputOption::VALUE_REQUIRED) + ->addOption('current_part', null, InputOption::VALUE_REQUIRED) ; } @@ -214,6 +217,9 @@ protected function execute(InputInterface $input, OutputInterface $output) $targetFactory->setConnection($connection); $targetTables = $targetFactory->createTargets($config); - $this->anonymizer->anonymize($connection, $targetTables); + $this->anonymizer->anonymize($connection, $targetTables, [ + 'number_of_parts' => (int) $input->getOption('number_of_parts'), + 'current_part' => (int) $input->getOption('current_part'), + ]); } } diff --git a/src/Config/AnnotationConfigFactory.php b/src/Config/AnnotationConfigFactory.php index 755cfc1..7b2bd3f 100644 --- a/src/Config/AnnotationConfigFactory.php +++ b/src/Config/AnnotationConfigFactory.php @@ -51,7 +51,7 @@ public function getConfig(array $allMetadata) $tableName = $metadata->table['name']; $config[$tableName] = [ - 'primary_key' => $metadata->identifier, + 'primary_key' => [], 'fields' => [], ]; @@ -62,6 +62,7 @@ public function getConfig(array $allMetadata) foreach ($metadata->fieldMappings as $fieldName => $fieldMapping) { if (in_array($fieldName, $metadata->identifier)) { + $config[$tableName]['primary_key'][] = $fieldMapping['columnName']; continue; } diff --git a/src/Resources/config/services.xml b/src/Resources/config/services.xml index 0ecc8e1..ff749ea 100644 --- a/src/Resources/config/services.xml +++ b/src/Resources/config/services.xml @@ -24,7 +24,11 @@ + + + +