endeavour-agency/refresh-database-on-demand

This packages offers a drop-in replacement for Laravel's RefreshDatabase trait, which only refreshes the database when migrations have actually changed.
3,150 1
Install
composer require endeavour-agency/refresh-database-on-demand
Latest Version:1.0.0
PHP:^8.2
License:MIT
Last Updated:Jan 23, 2025
Links: GitHub  ·  Packagist
Maintainer: denniskoster

Refresh Database On Demand

This package offers a drop-in replacement for Laravel's RefreshDatabase trait.

Laravel's default RefreshDatabase trait always performs a migrate:fresh at the start of running a single or multiple tests, even when migrations haven't been added or deleted.

When using this package's RefreshDatabaseOnDemand trait instead, migrate:fresh will only be called when new migrations have been added or migrations have been deleted. This significantly reduces start-up time of running a single or a set of tests.

Installation

To install the package, simply require it with composer:

composer require endeavour-agency/refresh-database-on-demand

Usage

To start using the power of on-demand database refreshing, replace any occurrence of Illuminate\Foundation\Testing\RefreshDatabase with EndeavourAgency\RefreshDatabaseOnDemand\Traits\RefreshDatabaseOnDemand.

Before:

<?php
 
namespace Tests\Unit;
 
use Illuminate\Foundation\Testing\RefreshDatabase;
use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\Attributes\Test;
 
class ExampleTest extends TestCase
{
    use RefreshDatabase;
    
    ...
}

After:

<?php
 
namespace Tests\Unit;
 
use EndeavourAgency\RefreshDatabaseOnDemand\Traits\RefreshDatabaseOnDemand;
use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\Attributes\Test;
 
class ExampleTest extends TestCase
{
    use RefreshDatabaseOnDemand;
    
    ...
}

Related Packages

endeavour-agency/laravel-migration-tests

Provides tools for integration testing Laravel migrations.

3,781 5
mahbubhelal/refresh-databases

A Laravel package that extends RefreshDatabase trait to support multiple databas...

76 0
squareboat/sql-doctor

Quickly debugging the amount of database queries per request in Laravel.

1,456 57
laravel-doctrine/migrations

Doctrine Migrations for Laravel

2,986,498 78