PHPackages                             hasinhayder/tyro-checkpoint - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. hasinhayder/tyro-checkpoint

ActiveLibrary[Database &amp; ORM](/categories/database)

hasinhayder/tyro-checkpoint
===========================

Database checkpoint management for Laravel local development

v1.7.2(2w ago)721433MITPHPPHP ^8.1

Since Feb 1Pushed 2w agoCompare

[ Source](https://github.com/hasinhayder/tyro-checkpoint)[ Packagist](https://packagist.org/packages/hasinhayder/tyro-checkpoint)[ RSS](/packages/hasinhayder-tyro-checkpoint/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (17)Versions (12)Used By (0)

Tyro Checkpoint
===============

[](#tyro-checkpoint)

Database checkpoints for Laravel local development. Snapshot your database and restore it instantly. Supports SQLite, MySQL, and PostgreSQL.

> Local development only. Not for production.

Requirements
------------

[](#requirements)

- PHP 8.1+
- Laravel 10.x–13.x
- SQLite, MySQL 8+, or PostgreSQL 12+
- MySQL: `mysqldump`, `mysql`
- PostgreSQL: `pg_dump`, `psql`

Install
-------

[](#install)

```
composer require hasinhayder/tyro-checkpoint --dev
php artisan tyro-checkpoint:install
```

Commands
--------

[](#commands)

CommandDescription`tyro-checkpoint:create [name] [--encrypt] [--silent]`Create a checkpoint`tyro-checkpoint:list [id|name]`List checkpoints (or view one)`tyro-checkpoint:details [id|name]`Show checkpoint details`tyro-checkpoint:restore [id|name]`Restore a checkpoint`tyro-checkpoint:delete [id|name]`Delete a checkpoint (alias: `remove`)`tyro-checkpoint:flush [--force]`Delete all **unlocked** checkpoints`tyro-checkpoint:lock [id|name]`Lock (prevent deletion)`tyro-checkpoint:unlock [id|name]`Unlock`tyro-checkpoint:flag [id|name]`Flag for attention (🚩)`tyro-checkpoint:unflag [id|name]`Remove flag`tyro-checkpoint:add-note [id|name]`Add a note`tyro-checkpoint:encrypt [id|name]`Encrypt an existing checkpoint in place`tyro-checkpoint:generate-key`Generate encryption key into `.env``tyro-checkpoint:publish-config`Publish config file`tyro-checkpoint:install`Run setup`tyro-checkpoint:version`Show version and system infoRestore is non-destructive to checkpoints — you can restore the same one many times.

Auto-checkpoints
----------------

[](#auto-checkpoints)

Snapshot automatically before risky commands (migrations, seeders, `db:wipe`).

```
TYRO_CHECKPOINT_AUTO_ENABLED=true
```

Default watched commands: `migrate`, `migrate:fresh`, `migrate:refresh`, `migrate:reset`, `migrate:rollback`, `db:seed`, `db:wipe`.

Configuration
-------------

[](#configuration)

Publish with `tyro-checkpoint:publish-config`. Defaults:

```
return [
    'storage_path' => storage_path('tyro-checkpoints'),
    'encryption_key' => env('TYRO_CHECKPOINT_ENCRYPTION_KEY'),
    'process' => [
        'timeout' => env('TYRO_CHECKPOINT_PROCESS_TIMEOUT', 600),
    ],
    'auto_checkpoint' => [
        'enabled' => env('TYRO_CHECKPOINT_AUTO_ENABLED', false),
        'commands' => ['migrate', 'migrate:fresh', 'migrate:refresh', 'migrate:reset', 'migrate:rollback', 'db:seed', 'db:wipe'],
        'name_prefix' => env('TYRO_CHECKPOINT_AUTO_NAME_PREFIX', 'auto'),
        'encrypt' => env('TYRO_CHECKPOINT_AUTO_ENCRYPT', false),
        'stop_on_failure' => env('TYRO_CHECKPOINT_AUTO_STOP_ON_FAILURE', true),
    ],
];
```

Storage
-------

[](#storage)

```
storage/tyro-checkpoints/
├── checkpoints.json     # Metadata (stored outside the DB)
├── name.sqlite          # Snapshot files
└── ...

```

Metadata lives in `checkpoints.json`, so restoring a snapshot never loses track of other checkpoints.

Encryption
----------

[](#encryption)

```
php artisan tyro-checkpoint:generate-key
php artisan tyro-checkpoint:create secure --encrypt
```

Encrypted checkpoints auto-decrypt on restore. Back up `TYRO_CHECKPOINT_ENCRYPTION_KEY` — losing it makes encrypted checkpoints unrestorable.

Notes
-----

[](#notes)

- Full database snapshots (file copy for SQLite, SQL dump for MySQL/PostgreSQL).
- Locked checkpoints survive `flush`.
- In-memory SQLite (`:memory:`) is not supported.
- Delete unneeded checkpoints to save disk space.

License
-------

[](#license)

MIT — © [Hasin Hayder](https://hasinhayder.com)

###  Health Score

46

—

FairBetter than 92% of packages

Maintenance90

Actively maintained with recent releases

Popularity27

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~13 days

Recently: every ~0 days

Total

11

Last Release

15d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/490779?v=4)[Hasin Hayder](/maintainers/HasinHayder)[@hasinhayder](https://github.com/hasinhayder)

---

Top Contributors

[![hasinhayder](https://avatars.githubusercontent.com/u/490779?v=4)](https://github.com/hasinhayder "hasinhayder (33 commits)")

---

Tags

backuplaravelsnapshotsqlitesqlite-database

###  Code Quality

TestsPHPUnit

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/hasinhayder-tyro-checkpoint/health.svg)

```
[![Health](https://phpackages.com/badges/hasinhayder-tyro-checkpoint/health.svg)](https://phpackages.com/packages/hasinhayder-tyro-checkpoint)
```

###  Alternatives

[illuminate/queue

The Illuminate Queue package.

21332.6M1.6k](/packages/illuminate-queue)[spatie/laravel-medialibrary

Associate files with Eloquent models

6.1k43.2M631](/packages/spatie-laravel-medialibrary)[spatie/laravel-health

Monitor the health of a Laravel application

87512.0M165](/packages/spatie-laravel-health)[laravel/ai

The official AI SDK for Laravel.

1.0k3.2M194](/packages/laravel-ai)[mike-bronner/laravel-model-caching

Automatic caching for Eloquent models.

2.4k90.5k1](/packages/mike-bronner-laravel-model-caching)[spatie/laravel-export

Create a static site bundle from a Laravel app

674146.0k6](/packages/spatie-laravel-export)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
