From 1212ef4d920234cda659f5944bdb02a6d6f89578 Mon Sep 17 00:00:00 2001 From: Luiz Marin <67489841+luizcmarin@users.noreply.github.com> Date: Tue, 7 May 2024 15:41:20 -0300 Subject: [PATCH] Update file (#258) Co-authored-by: Sergei Predvoditelev --- LICENSE.md | 6 +- README.md | 34 +++------- docs/guide/{pt-BR/readme.md => en/README.md} | 0 docs/guide/en/usage-with-yii-console.md | 4 ++ docs/guide/pt-BR/usage-standalone.md | 70 -------------------- docs/guide/pt-BR/usage-with-symfony.md | 55 --------------- docs/guide/pt-BR/usage-with-yii-console.md | 42 ------------ docs/internals.md | 17 ++--- 8 files changed, 21 insertions(+), 207 deletions(-) rename docs/guide/{pt-BR/readme.md => en/README.md} (100%) delete mode 100644 docs/guide/pt-BR/usage-standalone.md delete mode 100644 docs/guide/pt-BR/usage-with-symfony.md delete mode 100644 docs/guide/pt-BR/usage-with-yii-console.md diff --git a/LICENSE.md b/LICENSE.md index 6a920d6..c48bcea 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -5,13 +5,13 @@ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: -* Redistributions of source code must retain the above copyright + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. -* Neither the name of Yii Software nor the names of its + * Neither the name of Yii Software nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. diff --git a/README.md b/README.md index 2968ce6..a941f6b 100644 --- a/README.md +++ b/README.md @@ -32,23 +32,15 @@ Supports the following databases out of the box: ## Installation -The preferred way to install this extension is through [composer](https://getcomposer.org/download/). - -Either run: +The package could be installed with [Composer](https://getcomposer.org): ```shell composer require yiisoft/db-migration ``` -or add to the `require` section of your `composer.json`: - -```json -"yiisoft/db-migration": "^1.0" -``` - ## Command list -```shell +```text migrate:create Creates a new migration. migrate:down Reverts the specified number of latest migrations. migrate:history Displays the migration history. @@ -61,18 +53,19 @@ The create command allows defining fields for the table being created. ## Documentation -- [English](docs/guide/en/readme.md) -- [Português - Brasil](docs/guide/pt-BR/readme.md) - -Testing: - +- [Guide](docs/guide/en/README.md) - [Internals](docs/internals.md) -## Support - If you need help or have a question, the [Yii Forum](https://forum.yiiframework.com/c/yii-3-0/63) is a good place for that. You may also check out other [Yii Community Resources](https://www.yiiframework.com/community). +## License + +The Yii DB Migration is free software. It is released under the terms of the BSD License. +Please see [`LICENSE`](./LICENSE.md) for more information. + +Maintained by [Yii Software](https://www.yiiframework.com/). + ## Support the project [![Open Collective](https://img.shields.io/badge/Open%20Collective-sponsor-7eadf1?logo=open%20collective&logoColor=7eadf1&labelColor=555555)](https://opencollective.com/yiisoft) @@ -84,10 +77,3 @@ You may also check out other [Yii Community Resources](https://www.yiiframework. [![Telegram](https://img.shields.io/badge/telegram-join-1DA1F2?style=flat&logo=telegram)](https://t.me/yii3en) [![Facebook](https://img.shields.io/badge/facebook-join-1DA1F2?style=flat&logo=facebook&logoColor=ffffff)](https://www.facebook.com/groups/yiitalk) [![Slack](https://img.shields.io/badge/slack-join-1DA1F2?style=flat&logo=slack)](https://yiiframework.com/go/slack) - -## License - -The Yii Db Migration is free software. It is released under the terms of the BSD License. -Please see [`LICENSE`](./LICENSE.md) for more information. - -Maintained by [Yii Software](https://www.yiiframework.com/). diff --git a/docs/guide/pt-BR/readme.md b/docs/guide/en/README.md similarity index 100% rename from docs/guide/pt-BR/readme.md rename to docs/guide/en/README.md diff --git a/docs/guide/en/usage-with-yii-console.md b/docs/guide/en/usage-with-yii-console.md index 2b52954..067edbc 100644 --- a/docs/guide/en/usage-with-yii-console.md +++ b/docs/guide/en/usage-with-yii-console.md @@ -5,6 +5,10 @@ In this example, we use [yiisoft/app](https://github.com/yiisoft/app). First, configure DI container. Create `config/common/db.php` with the following content: ```php + new \Yiisoft\Db\Mysql\Connection( - new \Yiisoft\Db\Mysql\Driver('mysql:host=mysql;dbname=mydb', 'user', 'q1w2e3r4'), - new \Yiisoft\Db\Cache\SchemaCache(new \Yiisoft\Cache\ArrayCache()), - ), - ``` - -3. Optionally, modify other options in the configuration file. Each option has a comment with description. -4. Run the console command without arguments to see the list of available migration commands: - - ```shell - ./vendor/bin/yii-db-migration - ``` - -## Without configuration file - -This can be useful in testing environment and/or when multiple RDBMS are used. - -Configure all dependencies manually: - -```php -use Yiisoft\Db\Connection\ConnectionInterface; -use Yiisoft\Db\Migration\Informer\NullMigrationInformer; -use Yiisoft\Db\Migration\Migrator; -use Yiisoft\Db\Migration\Service\MigrationService; -use Yiisoft\Injector\Injector; - -/** @var ConnectionInterface $database */ -$migrator = new Migrator($database, new NullMigrationInformer()); -$migrationService = new MigrationService($database, new Injector(), $migrator); -$migrationService->setSourcePaths([dirname(__DIR__, 2), 'migrations']); -``` - -Then initialize the command for using without CLI. For example, for applying migrations it will be `UpdateCommand`: - -```php -use Symfony\Component\Console\Helper\HelperSet; -use Symfony\Component\Console\Helper\QuestionHelper; -use Yiisoft\Db\Migration\Command\UpdateCommand; -use Yiisoft\Db\Migration\Runner\UpdateRunner; - -$command = new UpdateCommand(new UpdateRunner($migrator), $migrationService, $migrator); -$command->setHelperSet(new HelperSet(['queestion' => new QuestionHelper()])); -``` - -And, finally, run the command: - -```php -use Symfony\Component\Console\Input\ArrayInput; -use Symfony\Component\Console\Output\NullOutput; - -$input = new ArrayInput([]); -$input->setInteractive(false); - -$this->getMigrateUpdateCommand()->run($input, new NullOutput()); -``` diff --git a/docs/guide/pt-BR/usage-with-symfony.md b/docs/guide/pt-BR/usage-with-symfony.md deleted file mode 100644 index 58d875c..0000000 --- a/docs/guide/pt-BR/usage-with-symfony.md +++ /dev/null @@ -1,55 +0,0 @@ -# Usage with Symfony - -Require migrations and DB driver. Let's use SQLite for this example: - -```shell -composer require yiisoft/db-migration -composer require yiisoft/db-sqlite -``` - -Configure migrations and database connection in your `config/services.yml`: - -```yaml -Yiisoft\Db\Migration\: - resource: '../vendor/yiisoft/db-migration/src/' - -Yiisoft\Db\Migration\Informer\MigrationInformerInterface: - class: 'Yiisoft\Db\Migration\Informer\ConsoleMigrationInformer' - -Yiisoft\Injector\Injector: - arguments: - - '@service_container' - -Yiisoft\Db\Migration\Service\MigrationService: - calls: - - setNewMigrationNamespace: ['App\Migrations'] - - setNewMigrationPath: [''] - - setSourceNamespaces: [['App\Migrations']] - - setSourcePaths: [[]] - -Yiisoft\Db\: - resource: '../vendor/yiisoft/db/src/' - exclude: - - '../vendor/yiisoft/db/src/Debug/' - -cache.app.simple: - class: 'Symfony\Component\Cache\Psr16Cache' - arguments: - - '@cache.app' - -Yiisoft\Db\Cache\SchemaCache: - arguments: - - '@cache.app.simple' - -Yiisoft\Db\Connection\ConnectionInterface: - class: '\Yiisoft\Db\Sqlite\Connection' - arguments: - - '@sqlite_driver' - -sqlite_driver: - class: '\Yiisoft\Db\Sqlite\Driver' - arguments: - - 'sqlite:./var/migrations.sq3' -``` - -That's it. Now you can use `bin/console migrate:*` commands. diff --git a/docs/guide/pt-BR/usage-with-yii-console.md b/docs/guide/pt-BR/usage-with-yii-console.md deleted file mode 100644 index 2b52954..0000000 --- a/docs/guide/pt-BR/usage-with-yii-console.md +++ /dev/null @@ -1,42 +0,0 @@ -# Usage with Yii Console - -In this example, we use [yiisoft/app](https://github.com/yiisoft/app). - -First, configure DI container. Create `config/common/db.php` with the following content: - -```php -use Yiisoft\Db\Connection\ConnectionInterface; -use Yiisoft\Db\Sqlite\Connection as SqliteConnection; - -return [ - ConnectionInterface::class => [ - 'class' => SqliteConnection::class, - '__construct()' => [ - 'dsn' => 'sqlite:' . __DIR__ . '/Data/yiitest.sq3' - ] - ] -]; -``` - -Add to `config/params.php`: - -```php -... -'yiisoft/db-migration' => [ - 'newMigrationNamespace' => 'App\\Migration', - 'sourceNamespaces' => ['App\\Migration'], -], -... -``` - -Now the `MigrationService::class` uses the `View` of the application that is already registered in `yiisoft/view`. - -Execute `composer du` in console to rebuild the configuration. - -Now we have the `yiisoft/db-migration` package configured and it can be called in the console. - -View the list of available commands with `./yii list`: - -```shell -./yii list -``` diff --git a/docs/internals.md b/docs/internals.md index 65f92ee..fcea251 100644 --- a/docs/internals.md +++ b/docs/internals.md @@ -34,7 +34,7 @@ docker compose up -d ### Global testing -The following steps are required to run the tests. +The package is tested with [PHPUnit](https://phpunit.de/). To run tests: 1. Run all Docker containers for each dbms. 2. Install the dependencies of the project with composer. @@ -46,7 +46,7 @@ vendor/bin/phpunit ### Individual testing -The following steps are required to run the tests. +The package is tested with [PHPUnit](https://phpunit.de/). To run tests: 1. Run the Docker container for the dbms you want to test. 2. Install the dependencies of the project with composer. @@ -64,14 +64,6 @@ Suites available: - Pgsql - Sqlite -## Unit testing - -The package is tested with [PHPUnit](https://phpunit.de/). To run tests: - -```shell -./vendor/bin/phpunit -``` - ## Mutation testing The package tests are checked with [Infection](https://infection.github.io/) mutation framework with @@ -100,9 +92,8 @@ use either newest or any specific version of PHP: ## Dependencies -This package uses [composer-require-checker](https://github.com/maglnet/ComposerRequireChecker) to check if all dependencies are correctly defined in `composer.json`. - -To run the checker, execute the following command: +This package uses [composer-require-checker](https://github.com/maglnet/ComposerRequireChecker) to check if +all dependencies are correctly defined in `composer.json`. To run the checker, execute the following command: ```shell ./vendor/bin/composer-require-checker