Skip to content

Database updates

Nick Hamnett edited this page Sep 29, 2026 · 1 revision
php artisan geolocator:update-iplocationdb       # update now
php artisan geolocator:update-iplocationdb -v    # log each step, with context

Every edition × ipv4/ipv6 is downloaded from update.urls.<edition>.<ipVersion>[] to the path configured at editions.<edition>.<ipVersion>. A download lands in a temporary file and is renamed into place only when it is non-empty, so a failed download never leaves a half-written database behind.

Downloads are retried across every URL configured for an edition. While MAXMIND_AUTO_UPDATE is enabled the command is also registered on the scheduler (MAXMIND_UPDATE_FREQUENCY, weekly by default) and runs withoutOverlapping(), so do not add it to your own console schedule.

Events

Event Dispatched when Payload
DatabaseFileUpdated a database file was replaced edition, ipVersion, localPath
DatabaseFileUpdateFailed a file was skipped or every URL failed edition, ipVersion, localPath, reason
DatabaseUpdatesCompleted a full update run finished total, successful, failed, hasFailures()

Each file update also reports progress through the optional callback passed to Updater::update(callable $callback).

The package emits these events but sends no notifications itself — register a listener to notify whatever your application uses (mail, Slack, database notifications).

After an update

A replaced database is picked up by the next process that opens a reader; see the long-running worker note under Installation and the matching row in Troubleshooting for the exceptions.

Clone this wiki locally