diff --git a/README.md b/README.md index fda4a7b2..078e319f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@
-
+
@@ -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([