edde-framework/edde-framework

View on GitHub
src/Edde/Ext/Upgrade/InitialStorageUpgrade.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
    declare(strict_types=1);

    namespace Edde\Ext\Upgrade;

    use Edde\Api\Schema\LazySchemaManagerTrait;
    use Edde\Api\Storage\LazyStorageTrait;
    use Edde\Common\Query\Schema\CreateSchemaQuery;
    use Edde\Common\Upgrade\AbstractUpgrade;

    /**
     * This upgrade is useful for initial storage setup; it will create all available schemas.
     */
    class InitialStorageUpgrade extends AbstractUpgrade {
        use LazyStorageTrait;
        use LazySchemaManagerTrait;

        /**
         * @param string $version
         */
        public function __construct($version = 'edde') {
            parent::__construct($version);
        }

        protected function onUpgrade() {
            $this->schemaManager->setup();
            foreach ($this->schemaManager->getSchemaList() as $schema) {
                if ($schema->getMeta('storable', false)) {
                    $this->storage->execute(new CreateSchemaQuery($schema));
                }
            }
        }
    }