Skip to content
This repository has been archived by the owner on Feb 6, 2023. It is now read-only.

Commit

Permalink
Merge remote-tracking branch 'origin/master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
orkhanahmadov committed Sep 22, 2020
2 parents a212595 + b6c2489 commit 7c7207a
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,23 @@
[![Quality Score](https://img.shields.io/scrutinizer/g/orkhanahmadov/content-migrations.svg)](https://scrutinizer-ci.com/g/orkhanahmadov/content-migrations)
[![StyleCI](https://github.styleci.io/repos/297263051/shield?branch=master)](https://github.styleci.io/repos/297263051?branch=master)

Package simplifies having content based migrations separate from Laravel's migrations.
Package simplifies having content-based migrations separate from Laravel's migrations.

## Why?

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 product.
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 last state of database structure only. 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.

## Requirements
Expand All @@ -42,7 +48,7 @@ composer require orkhanahmadov/content-migrations
To create content-based migration run `make:content-migration` artisan command and pass migration name:

``` shell script
php artisan make:content-migration add_new_post
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.
Expand Down

0 comments on commit 7c7207a

Please sign in to comment.