Laravel database driver for TiDB
- PHP >= 7.4
- Laravel 6 ~ 10
- TiDB >= 4.0
Install via composer
composer require colopl/laravel-tidb
That'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_RANDOM
to the schema instead ofPRIMARY KEY AUTO_INCREMENT
so 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
SAVEPOINT
is 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 test
Apache 2.0 - See LICENSE for more information.