diff --git a/README.md b/README.md index fda4a7b2..078e319f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

- Laravel v11.x + Laravel v12.x Build Status @@ -31,7 +31,7 @@ Vous pouvez rejoindre la communauté ou nous suivre via nos différentes platefo - [Twitter](https://twitter.com/laravelcm) - [Facebook](https://www.facebook.com/laravelcm) -## Sponsors +## Sponsors 💰 Nous tenons à remercier ces **entreprises extraordinaires** pour leur parrainage. Si vous souhaitez devenir sponsor, veuillez visiter la page Laravel.cm de Sponsoring. @@ -40,16 +40,16 @@ Nous tenons à remercier ces **entreprises extraordinaires** pour leur parrainag - [NotchPay](https://notchpay.co?utm_source=laravel.cm) - [LN UI](https://ui.lndev.me?utm_source=laravel.cm) -## Caractéristiques Serveur +## Caractéristiques Serveur 📝 Les dépendances suivantes sont nécessaires pour démarrer l'installation. -- PHP >= 8.2 +- [php](https://www.php.net/docs.php) version 8.4 minimum +- [Docker](https://docs.docker.com/get-docker/) et [Docker Compose](https://docs.docker.com/compose/install/) - [Composer](https://getcomposer.org/download/) -- [Yarn](https://yarnpkg.com/getting-started/install) -- [Valet](https://laravel.com/docs/valet#installation) or [Herd](https://herd.laravel.com) +- [Laravel server requirements](https://laravel.com/docs/deployment#server-requirements) -## Installation +## Installation 🚀 > Notez que vous êtes libre d'ajuster l'emplacement `~/Sites/laravel.cm` à n'importe quel répertoire de votre choix sur votre machine. Ce faisant, assurez-vous d'exécuter la commande `valet link` (si vous utilisez Laravel Valet) dans le répertoire souhaité. diff --git a/app-modules/database-migration/composer.json b/app-modules/database-migration/composer.json index fcf54abf..ff3ef00a 100644 --- a/app-modules/database-migration/composer.json +++ b/app-modules/database-migration/composer.json @@ -1,29 +1,33 @@ { - "name": "laravelcm/database-migration", - "description": "Module laravelcm/database-migration for Laravel.cm - Migration tools from MySQL to PostgreSQL with SSH tunnel support", - "type": "library", - "version": "1.0.0", - "license": "proprietary", - "require": { - "php": "^8.4" - }, - "require-dev": { - "pestphp/pest": "^3.8", - "pestphp/pest-plugin-laravel": "^3.0" - }, - "autoload": { - "psr-4": { - "Laravelcm\\DatabaseMigration\\": "src/", - "Laravelcm\\DatabaseMigration\\Database\\Factories\\": "database/factories/", - "Laravelcm\\DatabaseMigration\\Database\\Seeders\\": "database/seeders/" - } - }, - "minimum-stability": "stable", - "extra": { - "laravel": { - "providers": [ - "Laravelcm\\DatabaseMigration\\Providers\\DatabaseMigrationServiceProvider" - ] - } + "name": "laravelcm/database-migration", + "description": "Module laravelcm/database-migration for Laravel.cm - Migration tools from MySQL to PostgreSQL with SSH tunnel support", + "type": "library", + "version": "1.0.0", + "license": "proprietary", + "require": { + "php": "^8.4", + "Illuminate/Support": "^11.0|^12.0" + }, + "require-dev": { + "pestphp/pest": "^3.8", + "pestphp/pest-plugin-laravel": "^3.0" + }, + "autoload": { + "psr-4": { + "Laravelcm\\DatabaseMigration\\": "src/" } + }, + "autoload-dev": { + "psr-4": { + "Laravelcm\\DatabaseMigration\\Tests\\": "tests/" + } + }, + "minimum-stability": "stable", + "extra": { + "laravel": { + "providers": [ + "Laravelcm\\DatabaseMigration\\Providers\\DatabaseMigrationServiceProvider" + ] + } + } } diff --git a/app-modules/database-migration/src/Console/Commands/MigrateDatabaseCommand.php b/app-modules/database-migration/src/Commands/MigrateDatabaseCommand.php similarity index 98% rename from app-modules/database-migration/src/Console/Commands/MigrateDatabaseCommand.php rename to app-modules/database-migration/src/Commands/MigrateDatabaseCommand.php index e403168a..f44dc0f5 100644 --- a/app-modules/database-migration/src/Console/Commands/MigrateDatabaseCommand.php +++ b/app-modules/database-migration/src/Commands/MigrateDatabaseCommand.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Laravelcm\DatabaseMigration\Console\Commands; +namespace Laravelcm\DatabaseMigration\Commands; use Illuminate\Console\Command; use Laravelcm\DatabaseMigration\Services\DatabaseMigrationService; diff --git a/app-modules/database-migration/src/Console/Commands/MigrateFilesToS3Command.php b/app-modules/database-migration/src/Commands/MigrateFilesToS3Command.php similarity index 96% rename from app-modules/database-migration/src/Console/Commands/MigrateFilesToS3Command.php rename to app-modules/database-migration/src/Commands/MigrateFilesToS3Command.php index b8358f5c..e74dc3b4 100644 --- a/app-modules/database-migration/src/Console/Commands/MigrateFilesToS3Command.php +++ b/app-modules/database-migration/src/Commands/MigrateFilesToS3Command.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Laravelcm\DatabaseMigration\Console\Commands; +namespace Laravelcm\DatabaseMigration\Commands; use Illuminate\Console\Command; use Illuminate\Support\Facades\File; @@ -11,7 +11,7 @@ final class MigrateFilesToS3Command extends Command { - protected $signature = 'files:migrate-to-s3 + protected $signature = 'lcm:migrate-files-to-s3 {--target-disk=s3 : Target S3 disk name} {--dry-run : Show what would be migrated without actually doing it} {--chunk=100 : Number of files to process per chunk}'; @@ -28,7 +28,9 @@ public function handle(): int { $this->info('🚀 Starting file migration to S3...'); - $targetDisk = (string) $this->option('target-disk'); + /** @var string $targetDisk */ + $targetDisk = $this->option('target-disk'); + /** @var bool $isDryRun */ $isDryRun = $this->option('dry-run'); /** @var int<1, max> $chunkSize */ $chunkSize = max(1, (int) $this->option('chunk')); @@ -47,6 +49,7 @@ public function handle(): int foreach ($sourceDirs as $sourceDir) { $this->info("📁 Processing directory: {$sourceDir['path']}"); + $this->migrateDirectory($sourceDir, $targetDisk, $chunkSize, $isDryRun); } diff --git a/app-modules/database-migration/src/Console/Commands/SshTunnelCommand.php b/app-modules/database-migration/src/Commands/SshTunnelCommand.php similarity index 97% rename from app-modules/database-migration/src/Console/Commands/SshTunnelCommand.php rename to app-modules/database-migration/src/Commands/SshTunnelCommand.php index 42f138f8..418f0762 100644 --- a/app-modules/database-migration/src/Console/Commands/SshTunnelCommand.php +++ b/app-modules/database-migration/src/Commands/SshTunnelCommand.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Laravelcm\DatabaseMigration\Console\Commands; +namespace Laravelcm\DatabaseMigration\Commands; use Illuminate\Console\Command; use Laravelcm\DatabaseMigration\Exceptions\SshTunnelException; diff --git a/app-modules/database-migration/src/Providers/DatabaseMigrationServiceProvider.php b/app-modules/database-migration/src/Providers/DatabaseMigrationServiceProvider.php index f178cb0e..a9c251d0 100644 --- a/app-modules/database-migration/src/Providers/DatabaseMigrationServiceProvider.php +++ b/app-modules/database-migration/src/Providers/DatabaseMigrationServiceProvider.php @@ -5,8 +5,9 @@ namespace Laravelcm\DatabaseMigration\Providers; use Illuminate\Support\ServiceProvider; -use Laravelcm\DatabaseMigration\Console\Commands\MigrateDatabaseCommand; -use Laravelcm\DatabaseMigration\Console\Commands\SshTunnelCommand; +use Laravelcm\DatabaseMigration\Commands\MigrateDatabaseCommand; +use Laravelcm\DatabaseMigration\Commands\MigrateFilesToS3Command; +use Laravelcm\DatabaseMigration\Commands\SshTunnelCommand; use Laravelcm\DatabaseMigration\Services\DatabaseMigrationService; use Laravelcm\DatabaseMigration\Services\SshTunnelService; @@ -29,6 +30,7 @@ public function boot(): void $this->commands([ SshTunnelCommand::class, MigrateDatabaseCommand::class, + MigrateFilesToS3Command::class, ]); $this->publishes([