colopl / laravel-tidb

PingCAP TiDB 的 Laravel 数据库驱动

v3.1.0 2024-03-19 01:29 UTC

This package is auto-updated.

Last update: 2024-09-19 02:41:50 UTC


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 驱动将抛出异常)

不支持的功能

  1. 由于 TiDB 不支持 SAVEPOINT,嵌套事务和回滚将始终回滚到第一个事务。换句话说,使用 $connection->rollBack() 回滚时,将始终回滚到级别 0
  2. 原子性地添加和删除多个列尚未完全支持。在迁移中定义多个列是支持的,但将逐个执行,并且不是原子的。例如:$table->dropColumn('title', 'content')

有关 TiDB 自身不支持的功能,请参阅 MySQL 兼容性

测试

你可以使用以下命令在 docker 上运行测试。

make test

许可证

Apache 2.0 - 更多信息请参阅 LICENSE