PHPackages                             codebider/seeder-versioning-tool - 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. codebider/seeder-versioning-tool

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

codebider/seeder-versioning-tool
================================

A Laravel package to versioning the seeders using an Artisan command.

v0.0.2(10mo ago)232MITPHPPHP &gt;=7.3

Since Apr 29Pushed 10mo ago1 watchersCompare

[ Source](https://github.com/AwaisJ670/SeederVersioningTool)[ Packagist](https://packagist.org/packages/codebider/seeder-versioning-tool)[ RSS](/packages/codebider-seeder-versioning-tool/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (1)Versions (3)Used By (0)

Laravel Seeder Versioning Tool
==============================

[](#laravel-seeder-versioning-tool)

[![Seeder Versioning Tool](https://camo.githubusercontent.com/0f6a64578de5b1f811b3461a6984b8997ba4aa952c211cfcd14fbdb829632cb2/68747470733a2f2f62616e6e6572732e6265796f6e64636f2e64652f53656564657225323056657273696f6e696e67253230546f6f6c2e706e673f7468656d653d6461726b267061636b6167654d616e616765723d636f6d706f7365722b72657175697265267061636b6167654e616d653d636f646562696465722532467365656465722d76657273696f6e696e672d746f6f6c267061747465726e3d7a69675a6167267374796c653d7374796c655f31266465736372697074696f6e3d4566666f72746c6573736c792b6d616e6167652b616e642b657865637574652b736565646572732b696e2b612b636f6e74726f6c6c65642532432b6368726f6e6f6c6f676963616c2b6f726465722b776974682b6d6f64756c652b737570706f72742b616e642b62617463682b747261636b696e67266d643d312673686f7757617465726d61726b3d3126666f6e7453697a653d313030707826696d616765733d68747470732533412532462532466c61726176656c2e636f6d253246696d672532466c6f676f6d61726b2e6d696e2e737667)](https://camo.githubusercontent.com/0f6a64578de5b1f811b3461a6984b8997ba4aa952c211cfcd14fbdb829632cb2/68747470733a2f2f62616e6e6572732e6265796f6e64636f2e64652f53656564657225323056657273696f6e696e67253230546f6f6c2e706e673f7468656d653d6461726b267061636b6167654d616e616765723d636f6d706f7365722b72657175697265267061636b6167654e616d653d636f646562696465722532467365656465722d76657273696f6e696e672d746f6f6c267061747465726e3d7a69675a6167267374796c653d7374796c655f31266465736372697074696f6e3d4566666f72746c6573736c792b6d616e6167652b616e642b657865637574652b736565646572732b696e2b612b636f6e74726f6c6c65642532432b6368726f6e6f6c6f676963616c2b6f726465722b776974682b6d6f64756c652b737570706f72742b616e642b62617463682b747261636b696e67266d643d312673686f7757617465726d61726b3d3126666f6e7453697a653d313030707826696d616765733d68747470732533412532462532466c61726176656c2e636f6d253246696d672532466c6f676f6d61726b2e6d696e2e737667)

[![License: MIT](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](LICENSE)[![Packagist Downloads](https://camo.githubusercontent.com/54c3af4aa8ab2d7dd845afd4bbe6b599bae95c8e18da3a3eaa91a026711ee2e8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f636f646562696465722f7365656465722d76657273696f6e696e672d746f6f6c)](https://camo.githubusercontent.com/54c3af4aa8ab2d7dd845afd4bbe6b599bae95c8e18da3a3eaa91a026711ee2e8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f636f646562696465722f7365656465722d76657273696f6e696e672d746f6f6c)[![Packagist Version](https://camo.githubusercontent.com/5dce40e2b48e98655b982073b3905cc9f5e2a2c9d3e84309cb152bc602e07d56/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f636f646562696465722f7365656465722d76657273696f6e696e672d746f6f6c)](https://camo.githubusercontent.com/5dce40e2b48e98655b982073b3905cc9f5e2a2c9d3e84309cb152bc602e07d56/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f636f646562696465722f7365656465722d76657273696f6e696e672d746f6f6c)

A Laravel package to manage and version database seeders using Artisan commands. This tool ensures that seeders are executed in a controlled and chronological order, with support for modules and batch tracking.

---

📦 Installation
--------------

[](#-installation)

You can install the package via Composer:

```
composer require codebider/seeder-versioning-tool
```

If you’re using Laravel &lt; 5.5, add the service provider manually in `config/app.php`:

```
'providers' => [
    CodeBider\versionSeeder\versionSeederServiceProvider::class,
];
```

---

⚙️ Configuration (Optional)
---------------------------

[](#️-configuration-optional)

You can publish the migration and stub files using:

```
php artisan vendor:publish --provider="CodeBider\versionSeeder\versionSeederServiceProvider"
```

Make sure to run the migration to create the `seeders` table:

```
php artisan vendor:publish --tag=migrations
php artisan migrate
```

This will publish:

- `database/migrations/2025_04_29_171328_create_seeders_table.php`
- `stubs/versioned_seeder.stub`

---

🧪 Usage
-------

[](#-usage)

### Running Versioned Seeders

[](#running-versioned-seeders)

Run all versioned seeders in chronological order:

```
php artisan db:seed:versioned
```

Options:

- `--connection=`: Specify the database connection.
- `--database=`: Specify the database name.
- `--module=`: Run seeders for a specific module.

### Creating a Versioned Seeder

[](#creating-a-versioned-seeder)

Generate a new versioned seeder file:

```
php artisan make:seeder:versioned SeederName
```

Options:

- `--module=`: Specify the module name for the seeder.

This will create a timestamped seeder file in the `database/seeders/Versioned` directory (or inside the specified module).

---

🛠 How It Works
--------------

[](#-how-it-works)

1. **Versioned Seeder Execution**:

    - Seeders are executed in chronological order based on their file creation time.
    - Each seeder is tracked in the `seeders` table to prevent duplicate execution.
2. **Batch Tracking**:

    - Seeders are grouped into batches for better tracking and rollback capabilities.
3. **Module Support**:

    - Seeders can be organized into modules for better separation of concerns.
4. **Custom Stub**:

    - The default stub file for versioned seeders can be customized by modifying the published `stubs/versioned_seeder.stub`.

---

✏️ Custom Stub
--------------

[](#️-custom-stub)

The stub file supports the following variables:

- `{{ namespace }}`
- `{{ class }}`

Example stub:

```
