Skip to content

Commit

Permalink
Merge pull request #2 from triadev/database_migrations
Browse files Browse the repository at this point in the history
Database migrations
  • Loading branch information
triadev committed Sep 23, 2018
2 parents 2b0b1f8 + 6aceabd commit bfd60d6
Show file tree
Hide file tree
Showing 59 changed files with 3,175 additions and 87 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ install:

script:
- ./vendor/bin/phpunit --coverage-clover build/logs/clover.xml
- ./vendor/bin/phpcs --standard=PSR2 src --ignore=src/Database/**,src/Config/* --runtime-set ignore_errors_on_exit 1 --runtime-set ignore_warnings_on_exit 1
- ./vendor/bin/phpcs --standard=PSR2 src --ignore=src/Database/**,src/Config/*

after_success:
- travis_retry php coveralls.phar -v
Expand Down
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,6 @@ Example:
>php artisan triadev:elasticsearch:migration:show
## Roadmap
- migrations from database [Branch](https://github.com/triadev/LaravelElasticsearchMigration/tree/database_migrations)
- create/delete templates
- shrink index
- split index
Expand Down
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
"prefer-stable": true,
"scripts": {
"test": "phpunit",
"check-style": "phpcs -p --standard=PSR2 src --ignore=src/Database/**,src/Config/* --runtime-set ignore_errors_on_exit 1 --runtime-set ignore_warnings_on_exit 1",
"fix-style": "phpcbf -p --standard=PSR2 src --ignore=src/Database/**,src/Config/* --runtime-set ignore_errors_on_exit 1 --runtime-set ignore_warnings_on_exit 1"
"check-style": "phpcs -p --standard=PSR2 src --ignore=src/Database/**,src/Config/*",
"fix-style": "phpcbf -p --standard=PSR2 src --ignore=src/Database/**,src/Config/*"
}
}
13 changes: 1 addition & 12 deletions src/Business/Repository/ElasticsearchMigration.php
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
<?php
namespace Triadev\EsMigration\Business\Repository;

use Illuminate\Database\Eloquent\Collection;
use Triadev\EsMigration\Contract\Repository\ElasticsearchMigrationContract;

class ElasticsearchMigration implements ElasticsearchMigrationContract
Expand All @@ -10,8 +9,7 @@ class ElasticsearchMigration implements ElasticsearchMigrationContract
* @inheritdoc
*/
public function createOrUpdate(
string $migration,
string $status
string $migration
): \Triadev\EsMigration\Models\Entity\ElasticsearchMigration {
$dbMigration = $this->find($migration);

Expand All @@ -20,7 +18,6 @@ public function createOrUpdate(
$dbMigration->migration = $migration;
}

$dbMigration->status = $status;
$dbMigration->saveOrFail();

return $dbMigration;
Expand All @@ -36,14 +33,6 @@ public function find(string $migration): ?\Triadev\EsMigration\Models\Entity\Ela
->first();
}

/**
* @inheritdoc
*/
public function all(array $fields = ['*']) : Collection
{
return \Triadev\EsMigration\Models\Entity\ElasticsearchMigration::all($fields);
}

/**
* @inheritdoc
*/
Expand Down
56 changes: 56 additions & 0 deletions src/Business/Repository/ElasticsearchMigrationStatus.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<?php
namespace Triadev\EsMigration\Business\Repository;

use Illuminate\Database\Eloquent\Collection;
use Triadev\EsMigration\Contract\Repository\ElasticsearchMigrationStatusContract;

class ElasticsearchMigrationStatus implements ElasticsearchMigrationStatusContract
{
/**
* @inheritdoc
*/
public function createOrUpdate(
string $migration,
string $status
): \Triadev\EsMigration\Models\Entity\ElasticsearchMigrationStatus {
$dbMigration = $this->find($migration);

if (!$dbMigration) {
$dbMigration = new \Triadev\EsMigration\Models\Entity\ElasticsearchMigrationStatus();
$dbMigration->migration = $migration;
}

$dbMigration->status = $status;
$dbMigration->saveOrFail();

return $dbMigration;
}

/**
* @inheritdoc
*/
public function find(string $migration): ?\Triadev\EsMigration\Models\Entity\ElasticsearchMigrationStatus
{
return \Triadev\EsMigration\Models\Entity\ElasticsearchMigrationStatus::where('migration', $migration)
->orderBy('created_at', 'desc')
->first();
}

/**
* @inheritdoc
*/
public function all(array $fields = ['*']) : Collection
{
return \Triadev\EsMigration\Models\Entity\ElasticsearchMigrationStatus::all($fields);
}

/**
* @inheritdoc
*/
public function delete(string $migration)
{
if ($migration = $this->find($migration)) {
$migration->delete();
}
}
}
34 changes: 34 additions & 0 deletions src/Business/Repository/ElasticsearchMigrations.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?php
namespace Triadev\EsMigration\Business\Repository;

use Triadev\EsMigration\Contract\Repository\ElasticsearchMigrationsContract;

class ElasticsearchMigrations implements ElasticsearchMigrationsContract
{
/**
* @inheritdoc
*/
public function create(
int $migrationId,
string $type,
string $index
): \Triadev\EsMigration\Models\Entity\ElasticsearchMigrations {
$dbMigration = new \Triadev\EsMigration\Models\Entity\ElasticsearchMigrations();
$dbMigration->migration_id = $migrationId;
$dbMigration->type = $type;
$dbMigration->index = $index;

$dbMigration->saveOrFail();

return $dbMigration;
}

/**
* @inheritdoc
*/
public function find(int $migrationsId): ?\Triadev\EsMigration\Models\Entity\ElasticsearchMigrations
{
return \Triadev\EsMigration\Models\Entity\ElasticsearchMigrations::where('id', $migrationsId)
->first();
}
}
38 changes: 38 additions & 0 deletions src/Business/Repository/ElasticsearchMigrationsAlias.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<?php
namespace Triadev\EsMigration\Business\Repository;

use Triadev\EsMigration\Contract\Repository\ElasticsearchMigrationsAliasContract;

class ElasticsearchMigrationsAlias implements ElasticsearchMigrationsAliasContract
{
/**
* @inheritdoc
*/
public function create(
int $migrationsId,
array $add = [],
array $remove = [],
array $removeIndices = []
): \Triadev\EsMigration\Models\Entity\ElasticsearchMigrationsAlias {
$dbMigration = new \Triadev\EsMigration\Models\Entity\ElasticsearchMigrationsAlias();
$dbMigration->migrations_id = $migrationsId;
$dbMigration->add = json_encode($add);
$dbMigration->remove = json_encode($remove);
$dbMigration->remove_indices = json_encode($removeIndices);

$dbMigration->saveOrFail();

return $dbMigration;
}

/**
* @inheritdoc
*/
public function find(int $migrationsId): ?\Triadev\EsMigration\Models\Entity\ElasticsearchMigrationsAlias
{
return \Triadev\EsMigration\Models\Entity\ElasticsearchMigrationsAlias::where(
'migrations_id',
$migrationsId
)->first();
}
}
39 changes: 39 additions & 0 deletions src/Business/Repository/ElasticsearchMigrationsCreateIndex.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?php
namespace Triadev\EsMigration\Business\Repository;

use Triadev\EsMigration\Contract\Repository\ElasticsearchMigrationsCreateIndexContract;

class ElasticsearchMigrationsCreateIndex implements ElasticsearchMigrationsCreateIndexContract
{
/**
* @inheritdoc
*/
public function create(
int $migrationsId,
array $mappings,
?array $settings = null
): \Triadev\EsMigration\Models\Entity\ElasticsearchMigrationsCreateIndex {
$dbMigration = new \Triadev\EsMigration\Models\Entity\ElasticsearchMigrationsCreateIndex();
$dbMigration->migrations_id = $migrationsId;
$dbMigration->mappings = json_encode($mappings);

if (is_array($settings)) {
$dbMigration->settings = json_encode($settings);
}

$dbMigration->saveOrFail();

return $dbMigration;
}

/**
* @inheritdoc
*/
public function find(int $migrationsId): ?\Triadev\EsMigration\Models\Entity\ElasticsearchMigrationsCreateIndex
{
return \Triadev\EsMigration\Models\Entity\ElasticsearchMigrationsCreateIndex::where(
'migrations_id',
$migrationsId
)->first();
}
}
38 changes: 38 additions & 0 deletions src/Business/Repository/ElasticsearchMigrationsDeleteByQuery.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<?php
namespace Triadev\EsMigration\Business\Repository;

use Triadev\EsMigration\Contract\Repository\ElasticsearchMigrationsDeleteByQueryContract;

class ElasticsearchMigrationsDeleteByQuery implements ElasticsearchMigrationsDeleteByQueryContract
{
/**
* @inheritdoc
*/
public function create(
int $migrationsId,
array $query,
?string $type = null,
array $options = []
): \Triadev\EsMigration\Models\Entity\ElasticsearchMigrationsDeleteByQuery {
$dbMigration = new \Triadev\EsMigration\Models\Entity\ElasticsearchMigrationsDeleteByQuery();
$dbMigration->migrations_id = $migrationsId;
$dbMigration->query = json_encode($query);
$dbMigration->type = $type;
$dbMigration->options = json_encode($options);

$dbMigration->saveOrFail();

return $dbMigration;
}

/**
* @inheritdoc
*/
public function find(int $migrationsId): ?\Triadev\EsMigration\Models\Entity\ElasticsearchMigrationsDeleteByQuery
{
return \Triadev\EsMigration\Models\Entity\ElasticsearchMigrationsDeleteByQuery::where(
'migrations_id',
$migrationsId
)->first();
}
}
42 changes: 42 additions & 0 deletions src/Business/Repository/ElasticsearchMigrationsReindex.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<?php
namespace Triadev\EsMigration\Business\Repository;

use Triadev\EsMigration\Contract\Repository\ElasticsearchMigrationsReindexContract;

class ElasticsearchMigrationsReindex implements ElasticsearchMigrationsReindexContract
{
/**
* @inheritdoc
*/
public function create(
int $migrationsId,
string $destIndex,
bool $refreshSourceIndex = false,
array $global = [],
array $source = [],
array $dest = []
): \Triadev\EsMigration\Models\Entity\ElasticsearchMigrationsReindex {
$dbMigration = new \Triadev\EsMigration\Models\Entity\ElasticsearchMigrationsReindex();
$dbMigration->migrations_id = $migrationsId;
$dbMigration->dest_index = $destIndex;
$dbMigration->refresh_source_index = $refreshSourceIndex;
$dbMigration->global = json_encode($global);
$dbMigration->source = json_encode($source);
$dbMigration->dest = json_encode($dest);

$dbMigration->saveOrFail();

return $dbMigration;
}

/**
* @inheritdoc
*/
public function find(int $migrationsId): ?\Triadev\EsMigration\Models\Entity\ElasticsearchMigrationsReindex
{
return \Triadev\EsMigration\Models\Entity\ElasticsearchMigrationsReindex::where(
'migrations_id',
$migrationsId
)->first();
}
}
40 changes: 40 additions & 0 deletions src/Business/Repository/ElasticsearchMigrationsUpdateByQuery.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<?php
namespace Triadev\EsMigration\Business\Repository;

use Triadev\EsMigration\Contract\Repository\ElasticsearchMigrationsUpdateByQueryContract;

class ElasticsearchMigrationsUpdateByQuery implements ElasticsearchMigrationsUpdateByQueryContract
{
/**
* @inheritdoc
*/
public function create(
int $migrationsId,
array $query,
?string $type = null,
?array $script = null,
array $options = []
): \Triadev\EsMigration\Models\Entity\ElasticsearchMigrationsUpdateByQuery {
$dbMigration = new \Triadev\EsMigration\Models\Entity\ElasticsearchMigrationsUpdateByQuery();
$dbMigration->migrations_id = $migrationsId;
$dbMigration->query = json_encode($query);
$dbMigration->type = $type;
$dbMigration->script = is_array($script) ? json_encode($script): null;
$dbMigration->options = json_encode($options);

$dbMigration->saveOrFail();

return $dbMigration;
}

/**
* F@inheritdoc
*/
public function find(int $migrationsId): ?\Triadev\EsMigration\Models\Entity\ElasticsearchMigrationsUpdateByQuery
{
return \Triadev\EsMigration\Models\Entity\ElasticsearchMigrationsUpdateByQuery::where(
'migrations_id',
$migrationsId
)->first();
}
}
Loading

0 comments on commit bfd60d6

Please sign in to comment.