Laravel database driver for TiDB
- PHP >= 8.0
- Laravel 11
- TiDB >= 7.0
Install via composer
composer require colopl/laravel-tidbThat's all. You can use database connection as usual.
- Added
autoRandom($shard_bits = null)toColumnDefinition - When user defines
$table->id()in the migration file, it will addPRIMARY KEY AUTO_RANDOMto the schema instead ofPRIMARY KEY AUTO_INCREMENTso that data gets distributed evenly. - Added Support for nested transactions (MySQL driver will throw an exception)
- Added Support for adding/dropping multiple columns (MySQL driver will throw an exception)
- Nesting transactions and then rolling them back will always rollback to the first transaction since
SAVEPOINTis not supported by TiDB. In other words, rolling back with$connection->rollBack()will always rollback level to0. - Adding and dropping multiple columns atomically is not fully supported. Defining multiple columns in migrations is supported but will be executed one by one and will not be atomic. Ex:
$table->dropColumn('title', 'content')
For unsupported features for TiDB itself, please see MySQL Compatibility.
You can run tests on docker by the following command.
make testApache 2.0 - See LICENSE for more information.