emiliosh / laravel-migration-partition
Laravel 扩展,用于在迁移中创建分区表。
v1.1
2023-12-01 12:48 UTC
Requires
- php: ^8.1
- doctrine/dbal: ^3.4
- illuminate/console: ^10.0
- illuminate/contracts: ^10.0
- illuminate/database: ^10.0
- illuminate/filesystem: ^10.0
- illuminate/support: ^10.0
- spatie/laravel-package-tools: ^1.13.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- spatie/laravel-ray: ^1.26
README
通过迁移为 Laravel 创建数据库分区(又名 Laravel 迁移分区)
此包扩展 Illuminate,以在迁移中提供 PostgreSQL 的分区表创建。很快将添加对其他数据库的支持。
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)。请参阅 许可文件 了解更多信息。