Skip to content

Feature Request: Add migrate:fresh command with optional --seed support #3

Description

@sagar290

I would like to suggest adding a command similar to Laravel’s migrate:fresh functionality.

Problem

During development and testing, developers often need to reset the database completely and rebuild it from migrations.

Currently, this requires manually:
• dropping all tables
• re-running migrations
• optionally inserting seed/test data

This process can be repetitive and error-prone.

Proposed Solution

Introduce a command:

migo migrate:fresh

Expected Behavior
• Drop all existing tables in the database
• Re-run all migrations from the beginning
• Reset migration history automatically

Optional Feature

Add support for seeding:

migo migrate:fresh --seed

Expected Behavior with --seed
• Run all migrations
• Execute registered seeders after migrations complete

Benefits
• Faster development workflow
• Easier database resets during testing
• Better CI/CD and automation support
• Parity with Laravel-style migration experience

Reference

Laravel implementation:
https://laravel.com/docs/migrations#migrate-fresh

Since Migo follows a Laravel-inspired workflow, this feature would integrate naturally into the developer experience.

Possible Implementation Idea (optional)
• Drop tables using database introspection
• Clear migration tracking table
• Re-run migrations normally
• Trigger seeder execution when --seed flag is present

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions