ekolotech / database-importer
Allow to import a database into another database
Requires
- php: >=7.2
- symfony/console: ^5.4
This package is auto-updated.
Last update: 2024-05-05 19:26:13 UTC
README
Auteur : @igorcyberdyne, @EKOLOTECH
ekolotech/database-importer est un composant commande permettant d'importer une base de données dite source
vers une autre base de données dite de destination
Base de données prise en charge
- Mysql
- MariaDB
Vous devez avoir ces base de données installées sur votre machine ou serveur
Comment installer ?
Vous pouvez
Télécharger le composant sur
github
ekolotech/database-importer
OU exécuter la commande ci-dessous dans la console
composer require ekolotech/database-importer
------------------------------------- CAS D'UTILISATION ------------------------------------
Pour effectuer l'import vous devez créer une commande, la configurée puis l'exécuter.
La commande que vous créez doit hériter la classe DatabaseImporterCommand
et implémenter l'interface de configuration des bases de données source et de destination DatabaseImporterCommandConfigInterface
.
Les méthodes de l'interface permettent de renseigner les données de connexion aux bases de données source et de destination.
1. Présentation du modèle :
DatabaseImporterCommandConfigInterface
interface DatabaseImporterCommandConfigInterface { public function getSource(): Database; public function getDestination(): Database; }
Database
class Database { public function __construct( string $name, // Nom de la base string $host, // le host du serveur string $user, // l'utilisateur sur lequel se connecter string $password, // le mot de passe de l'utilisateur ) { } }
2. Exemple d'implémentation
- Fichier principale (DatabaseImporter > demo > console)
#!/usr/bin/env php <?php use Symfony\Component\Console\Application; use Symfony\Component\Console\Input\ArgvInput; class ExampleDatabaseImporterCommand extends DatabaseImporterCommand implements DatabaseImporterCommandConfigInterface { public function getSource(): Database { return new Database( "source_database_test", "127.0.0.1", "username", "password" ); } public function getDestination(): Database { return new Database( "destination_database_test", "127.0.0.1", "username", "password" ); } } $application = new Application(); $application->add(new ExampleDatabaseImporterCommand()); $application->run(new ArgvInput());
- Exécution de la commande depuis la racine du projet
Un fichier MigrationV.*.sql
sera créé dans le répertoire temporaire de votre machine ou serveur
php demo/console app:database-importer
En ajoutant le paramètre migrationDir
contenant le chemin vers le répertoire de destination du dump sql, le fichier MigrationV.*.sql
sera créé dans ce dernier.
Dans le cas de la commande ci-dessous, il sera créé à la racine du projet.
php demo/console app:database-importer --migrationDir='C:\Project\DatabaseImporter'