A Laravel that extends Illuminate to enable partitioned table creation within Laravel migrations.
View the Project on GitHub orptech-com/laravel-migration-partition
This package extends Illuminate to provide partitioned table creation in migrations for PostgreSQL. Support for other DMBS’s will be added soon.
We are ORPtech. Here at ORPtech, we pride ourselves in ensuring that clients and services have a peaceful, safe and smooth interaction. We know how difficult it is to build trust for a service, therefore we are here to help bridge the gaps within the market via our robust applications. Please contact us for further information on how our services might help your business.
You can install the package via composer:
composer require orptech/laravel-migration-partition
This package currently, only supports PostgreSQL.
PostgreSQL also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance.
Instead of importing Illuminate’s Schema import this package’s schema:
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use ORPTech\MigrationPartition\Database\Schema\Blueprint;
use ORPTech\MigrationPartition\Support\Facades\Schema;
Schema::createRangePartitioned('[YourTableNameHere]', function (Blueprint $table) {
//...
}, '[compositeKeyOne]', '[compositeKeyTwo]', '[rangePartitionKey]');
use ORPTech\MigrationPartition\Database\Schema\Blueprint;
use ORPTech\MigrationPartition\Support\Facades\Schema;
Schema::createRangePartition('[YourPartitionedTableNameHere]', function (Blueprint $table) {}, '[suffixForPartition]', '[startDate]', '[endDate]');
use ORPTech\MigrationPartition\Database\Schema\Blueprint;
use ORPTech\MigrationPartition\Support\Facades\Schema;
Schema::attachRangePartition('[YourPartitionedTableNameHere]', function (Blueprint $table) {}, '[suffixForPartition]', '[startDate]', '[endDate]');
use ORPTech\MigrationPartition\Database\Schema\Blueprint;
use ORPTech\MigrationPartition\Support\Facades\Schema;
Schema::createListPartitioned('[YourTableNameHere]', function (Blueprint $table) {
//...
}, '[compositeKeyOne]', '[compositeKeyTwo]', '[listPartitionKey]');
use ORPTech\MigrationPartition\Database\Schema\Blueprint;
use ORPTech\MigrationPartition\Support\Facades\Schema;
Schema::createListPartition('[YourPartitionedTableNameHere]', function (Blueprint $table) {}, '[suffixForPartition]', '[listPartitionValue]');
use ORPTech\MigrationPartition\Database\Schema\Blueprint;
use ORPTech\MigrationPartition\Support\Facades\Schema;
Schema::attachListPartition('[YourPartitionedTableNameHere]', function (Blueprint $table) {}, '[suffixForPartition]', '[listPartitionValue]');
use ORPTech\MigrationPartition\Database\Schema\Blueprint;
use ORPTech\MigrationPartition\Support\Facades\Schema;
Schema::createHashPartitioned('[YourTableNameHere]', function (Blueprint $table) {
//...
}, '[compositeKeyOne]', '[compositeKeyTwo]', '[hashPartitionKey]');
use ORPTech\MigrationPartition\Database\Schema\Blueprint;
use ORPTech\MigrationPartition\Support\Facades\Schema;
Schema::createHashPartition('[YourPartitionedTableNameHere]', function (Blueprint $table) {}, '[suffixForPartition]', '[hashModulus]', '[hashRemainder]');
use ORPTech\MigrationPartition\Database\Schema\Blueprint;
use ORPTech\MigrationPartition\Support\Facades\Schema;
Schema::attachHashPartition('[YourPartitionedTableNameHere]', function (Blueprint $table) {}, '[suffixForPartition]', '[hashModulus]', '[hashRemainder]');
use ORPTech\MigrationPartition\Database\Schema\Blueprint;
use ORPTech\MigrationPartition\Support\Facades\Schema;
Schema::detachPartition('[YourPartitionedTableNameHere]', function (Blueprint $table) {}, '[partitionTableName]');
This command will create a new series of migrations for all range partitioned tables.
php artisan partition:range
This command will create a new series of migrations for all list partitioned tables.
php artisan partition:list
This command will create a new series of migrations for all hash partitioned tables.
php artisan partition:hash
This command will list all the partitioned tables.
php artisan partition:partitions
composer test
Please see CHANGELOG for more information on what has changed recently.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.