Skip to content

Fix Cashier migration order for new installations#1818

Closed
JaiveerChavda wants to merge 1 commit intolaravel:16.xfrom
JaiveerChavda:fix/failing-db-migrations-for-new-installs
Closed

Fix Cashier migration order for new installations#1818
JaiveerChavda wants to merge 1 commit intolaravel:16.xfrom
JaiveerChavda:fix/failing-db-migrations-for-new-installs

Conversation

@JaiveerChavda
Copy link

This PR fixes an issue where Cashier’s published migrations can run in the wrong order on fresh installations, causing child or alter migrations to execute before the base tables exist and resulting in migration failures.

On a new project, after publishing Cashier migrations, their filenames may be sorted alphabetically in a way that breaks the intended execution order. This behavior is documented in the following issue:

To ensure deterministic and correct ordering, this change prefixes the published migration filenames with explicit sequence markers (_1, _2, _3, …). This guarantees that:

  • Base tables are created before dependent or altering migrations.
  • Fresh installs migrate cleanly.
  • Existing projects are not affected, as their core tables already exist.

This aligns Cashier’s migration behavior with developer expectations and prevents new users from encountering setup failures.

@taylorotwell
Copy link
Member

Nothing fails for me on a fresh Laravel project, installing Cashier, publishing migrations, and then running them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants