Content migrations package for Laravel
Package simplifies having content-based migrations separate from Laravel's migrations.
Sometimes using migrations to manage content in database tables comes very handy to automate the content update process on all environments. Like adding new translations or updating products.
But using Laravel's own migrations for this purpose have some drawback:
- Laravel's migrations are not meant for content management, it is meant for database structure changes only.
- After some time it gets hard to manage and find content-based migrations among many migration files.
- Recent introduction of "migration squashing" in Laravel 8 copies only last state of database structure. This means if you have content-based migrations you need to find a way to migrate them again if you have an empty database.
Laravel seeders are ideal for managing content in your database, but they also have their drawbacks:
- They are not as automatic as migrations, you need to run and track each of them individually
- If you have an empty datatabase it becomes hard, almost impossible to know the order of seeders to run
This package aims to solve these problems by having dedicated content-based migrations separate from usual Laravel migrations.
- PHP 7.2 or above
- Laravel 6 or above
You can install the package via composer:
composer require orkhanahmadov/content-migrations
To create content-based migration run
make:content-migration artisan command and pass migration name:
php artisan make:content-migration add_new_translations
This will command will generate timestamp-based content migration inside
database/content-migrations folder of your application.
Generated migration will have single
up() method, you can use this method to insert/update/delete content in your database.
To migrate your content-based migrations, run:
php artisan content-migrate
This will behave the same way as Laravel's own
php artisan migrate command, but this command will track processed migrations in
content_migrations table, separate from Laravel's
Please see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email firstname.lastname@example.org instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.