daravel_mysql 1.6.0
daravel_mysql: ^1.6.0 copied to clipboard
MySQL and MariaDB driver for Daravel, so a Daravel application can share a MySQL database with a Laravel application.
daravel_mysql #
MySQL and MariaDB driver for Daravel,
on the pure Dart mysql_dart client.
With it, a Daravel application can share a MySQL database with a Laravel
application: the framework tables, Sanctum tokens and query results match
Laravel 12's.
dart pub add daravel_mysql
// bootstrap/app.dart
import 'package:daravel_mysql/daravel_mysql.dart';
Application createApp() => Application.configure(basePath: '.')
.withDatabaseDriver('mysql', MySqlDriver.fromConfig)
.withDatabaseDriver('mariadb', MySqlDriver.fromConfig)
// ...
.create();
DB_CONNECTION=mysql # or mariadb
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=shop
DB_USERNAME=shop
DB_PASSWORD=secret
DB_SSLMODE=disable # require / verify-full turn TLS on
DB_TIMEZONE= # optional session time zone, as Laravel's `timezone`
- Tested on MySQL 8.4 (
caching_sha2_password) and MariaDB 11 and 12. - Values with bindings run as server-side prepared statements.
- Results read like Laravel's:
TINYINT(1)as0/1,DECIMALandJSONas strings, dates asY-m-d H:i:stext. - The session time zone is the server's unless
DB_TIMEZONEis set, soTIMESTAMPcolumns read the same from Laravel and Daravel. - Deadlocks and lock wait timeouts are retried by
DB.transaction(attempts: n).
Documentation: https://github.com/daravel-dev/daravel/blob/main/docs/guide/database.md.
License and trademarks #
MIT. "Laravel" is a trademark of Laravel Holdings Inc.; "Dart" is a trademark of Google LLC; MySQL is a trademark of Oracle; MariaDB is a trademark of MariaDB plc. Daravel is an independent project, not affiliated with or endorsed by any of them.