orptech/laravel-migration-partition

Laravel 扩展程序,扩展 Illuminate 以在 Laravel 迁移中启用分区表创建。


README

Laravel 的数据库分区通过迁移(又名 Laravel 迁移分区)

该包扩展 Illuminate,以在迁移中提供 PostgreSQL 的分区表创建。其他数据库的支持将很快添加。

Latest Version on Packagist Total Downloads

ORPtech 软件

我们是 ORPtech。在这里,我们自豪地确保客户和服务有一个和平、安全、顺畅的互动。我们知道建立信任是多么困难,因此我们通过我们强大的应用程序帮助弥合市场上的差距。请联系我们了解我们的服务如何帮助您的业务。

安装

您可以通过 composer 安装此包。

composer require orptech/laravel-migration-partition

数据库管理系统支持

  • PostgreSQL

计划开发

  • MySQL - 招募贡献者
  • MariaDB - 招募贡献者
  • SQL Server 2017+
  • SQLite 3.8.8+

使用方法

目前,此包仅支持 PostgreSQL。

PostgreSQL

PostgreSQL 也称为 Postgres,是一个免费的开源关系数据库管理系统(RDBMS),强调可扩展性和 SQL 兼容性。

范围分区

而不是导入 Illuminate 的 Schema,请导入此包的 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]');

命令

创建一系列范围分区迁移

此命令将为所有范围分区表创建一系列新的迁移。

php artisan partition:range
创建一系列列表分区迁移

此命令将为所有列表分区表创建一系列新的迁移。

php artisan partition:list
创建一系列哈希分区迁移

此命令将为所有哈希分区表创建一系列新的迁移。

php artisan partition:hash
列出分区

此命令将列出所有分区表。

php artisan partition:partitions

重要

  • 目前,此包支持 PostgreSQL 范围分区。
  • 您不应在迁移中定义任何主键。包在设置表时创建组合键。
  • 您需要创建一个初始分区才能开始使用表。(PostgreSQL)

测试

composer test

变更日志

有关最近更改的更多信息,请参阅变更日志

安全漏洞

有关如何报告安全漏洞的更多信息,请参阅我们的安全策略

致谢

许可

MIT 许可证(MIT)。有关更多信息,请参阅许可文件