babenkoivan / elastic-migrations

Elasticsearch migrations for Laravel
MIT License
187 stars 32 forks source link

Add ability to add directories to MigrationStorage #33

Closed Jackardios closed 2 years ago

Jackardios commented 2 years ago

This PR adds the ability to add directories to MigrationStorage. Using the addDirectory function, we can add additional directories for MigrationStorage. This way we can define a function to register additional directories in the ServiceProvider (like loadMigrationsFrom to register database migrations).

For example:

/**
 * Register elastic migration directories.
 *
 * @param  array|string  $directories
 * @return void
 */
protected function loadElasticMigrationsFrom($directories)
{
    $this->callAfterResolving(\ElasticMigrations\Filesystem\MigrationStorage::class, function ($migrationStorage) use ($directories) {
        foreach ((array) $directories as $directory) {
            $migrationStorage->addDirectory($directory);
        }
    });
}
babenkoivan commented 2 years ago

Hey, sorry but I don't see any real benefits of having migrations in multiple directories. This makes code slower (many additional loops) and less readable. Maybe you can create your implementation of MigrationStorage and register it in the application service provider?