colopl / laravel-tidb
PingCAP TiDB 的 Laravel 数据库驱动
v3.1.0
2024-03-19 01:29 UTC
Requires
- php: >=8
- ext-json: *
- ext-pdo: *
- laravel/framework: ~10|~11
Requires (Dev)
- orchestra/testbench: ~8|~9
- phpunit/phpunit: ~11
README
Laravel 数据库驱动,适用于 TiDB
要求
- PHP >= 7.4
- Laravel 6 ~ 10
- TiDB >= 4.0
安装
通过 composer 安装
composer require colopl/laravel-tidb
这样就完成了。你可以像通常一样使用数据库连接。
特性
- 向
ColumnDefinition
添加了autoRandom($shard_bits = null)
- 当用户在迁移文件中定义
$table->id()
时,它将在模式中添加PRIMARY KEY AUTO_RANDOM
而不是PRIMARY KEY AUTO_INCREMENT
,从而使数据分布更加均匀。 - 添加了对嵌套事务的支持(MySQL 驱动将抛出异常)
- 添加了对添加/删除多个列的支持(MySQL 驱动将抛出异常)
不支持的功能
- 由于 TiDB 不支持
SAVEPOINT
,嵌套事务和回滚将始终回滚到第一个事务。换句话说,使用$connection->rollBack()
回滚时,将始终回滚到级别0
。 - 原子性地添加和删除多个列尚未完全支持。在迁移中定义多个列是支持的,但将逐个执行,并且不是原子的。例如:
$table->dropColumn('title', 'content')
有关 TiDB 自身不支持的功能,请参阅 MySQL 兼容性。
测试
你可以使用以下命令在 docker 上运行测试。
make test
许可证
Apache 2.0 - 更多信息请参阅 LICENSE。