emiliosh/laravel-migration-partition

Laravel 扩展,用于在迁移中创建分区表。

v1.1 2023-12-01 12:48 UTC

This package is auto-updated.

Last update: 2024-09-30 01:52:29 UTC


README

通过迁移为 Laravel 创建数据库分区(又名 Laravel 迁移分区)

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

Latest Version on Packagist Total Downloads

ORPtech 软件

我们是 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) {
    //...
}, '[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) {
    //...
}, '[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) {
    //...
}, '[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

变更日志

请参阅 CHANGELOG 了解最近更改的更多信息。

安全漏洞

请查看 我们的安全策略 了解如何报告安全漏洞。

致谢

许可

MIT 许可证(MIT)。请参阅 许可文件 了解更多信息。