x-laravel/pulse-oci-mysql

Laravel Pulse compatibility layer for Oracle Cloud MySQL (OCI) — removes generated columns and computes key_hash in PHP.

Maintainers

Package info

github.com/x-laravel/pulse-oci-mysql

pkg:composer/x-laravel/pulse-oci-mysql

Statistics

Installs: 12

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-03-26 23:35 UTC

This package is not auto-updated.

Last update: 2026-03-27 21:48:58 UTC


README

Laravel Pulse compatibility layer for Oracle Cloud MySQL (OCI).

OCI MySQL does not support md5() in generated columns, which breaks Pulse's default migration and storage layer. This package replaces the generated key_hash column with a plain char(32) column and computes the hash in PHP instead.

Requirements

  • PHP 8.2+
  • Laravel 10+
  • Laravel Pulse 1.x

Installation

composer require x-laravel/pulse-oci-mysql

Do not publish or run Pulse's own migrations. Use the ones provided by this package instead.

Publish and run the OCI-compatible migrations:

php artisan vendor:publish --tag=pulse-oci-mysql-migrations
php artisan migrate

That's it. The service provider is auto-discovered and handles everything else automatically.

What this package does

Default Pulse This package
key_hash column char(16) BINARY — generated via unhex(md5(key)) char(32) — populated by PHP md5()
Storage class DatabaseStorage PulseDatabaseStorage (extends DatabaseStorage)
Binding automatic overrides in boot(), always wins

Why boot() instead of register()?

PulseServiceProvider binds Storage::class → DatabaseStorage::class in its register() method. By binding our replacement in boot() — which always runs after all register() calls — we guarantee our binding takes effect regardless of provider load order.

License

MIT