alexeykhr/laravel-clickhouse-migrations
| Install | |
|---|---|
composer require alexeykhr/laravel-clickhouse-migrations |
|
| Latest Version: | v1.0.1 |
| PHP: | ^7.2.5 |
| License: | MIT |
| Last Updated: | Jun 24, 2021 |
| Links: | GitHub · Packagist |
Laravel Clickhouse Migrations
Installation
Install this package via Composer.
$ composer require alexeykhr/laravel-clickhouse-migrations
Note: PHP 7.2.5 or later is required
Publish Clickhouse configs:
$ php artisan vendor:publish --provider='Alexeykhr\ClickhouseMigrations\Providers\MigrationProvider'
Basic Usage
Create a new migration file:
$ php artisan make:clickhouse-migration {name}
Up migrations:
$ php artisan clickhouse-migrate
Down last migration:
$ php artisan clickhouse-migration:rollback
Advanced Usage
New Migration
To create a new migration, use this command:
$ php artisan make:clickhouse-migration {name}
For example:
$ php artisan make:clickhouse-migration create_users_table
The new file will be located at the path specified in the configs: clickhouse.path
Table
You can use a more prepared stub from the library that contains a template for quickly adding a new table by adding the --table option:
$ php artisan make:clickhouse-migration create_users_table --table=users
Path
You can override the path to the migrations folder by passing the --path option:
$ php artisan make:clickhouse-migration create_users_table --path=database/new-migrations-folder
If you want to use an absolute path to the file, add one more option - --realpath to the existing option:
$ php artisan make:clickhouse-migration create_users_table --path=/path/to/migrations --realpath
Stub
You can use your (override) prepared stub when creating a new file, list: clickhouse.stubs:
For example:
$ php artisan make:clickhouse-migration create_users_table --stub=default
Also you can add Handlers, with them, you can customize over one stub every time you create a file:
$ php artisan make:clickhouse-migration create_users_table --stub=myStub --stub.handler='App\Clickhouse\MyHandler'
The class must implement the
Alexeykhr\ClickhouseMigrations\Contracts\MigrationStubHandlerContractinterface
You can pass your $parameters, for example:
$ php artisan make:clickhouse-migration create_users_table --stub.handler='App\Clickhouse\MyHandler' --stub.param=key:value --stub.param=table:products
You can also register a global handler that will apply to all generated stub files: clickhouse.handlers.global
Up Migrations
Force
To remove the interactive question during production migrations, you can use --force option:
$ php artisan clickhouse-migrate --force
Output
To output migrations to be applied use --output option:
$ php artisan clickhouse-migrate --output
Before applying the shown migrations - will display an interactive question, to remove it, you can add another --force option to this option:
$ php artisan clickhouse-migrate --output --force
Step
You can specify how many files need to be applied:
$ php artisan clickhouse-migrate --step=1
Value
0- all files
Down Migrations
Has the same properties as in Up Migrations.
Other
You can use a singleton object smi2/phpClickHouse to query ClickHouse (used in migrations):
app('clickhouse')->select(/* Query */);
app('clickhouse')->write(/* Query */);
Changelog
Detailed changes for each release are documented in the CHANGELOG.md.
License
Related Packages
RabbitMQ and PHP client for Laravel and Lumen that allows you to add and listen...
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| v1.0.1 | ^7.2.5 | ^7.21 | MIT | |
| 1.0.0 | ^7.2.5 | ^7.21 | MIT |