Migration Name Generator
Generates a realistic timestamped migration filename — 20260114093012_add_email_index — following the convention most migration tools expect, for naming a new migration or as a documentation reference.
What this generator does
Produces a timestamped migration filename in the form most frameworks expect — a sortable timestamp followed by a description. The timestamp is not decoration: migrations are applied in filename order, so the prefix is what determines whether a column exists before something tries to index it.
What it builds, and how many ways
Each result is assembled to this shape: [timestamp] + [action] + [subject].
- subject: 20 options
- timestamp: 16 options
- action: 12 options
Taken together those banks can be assembled 3,840 different ways, repeating after about 78.
Some results it can produce:
- 20260114093012_index_slug_unique_index
- 20260208105417_create_audit_log
- 20260605084711_archive_currency_column
- 20261119160205_index_invoices_table
A fixed sample so this page stays the same between visits. Your own results are assembled at random, each slot filled independently and each press independent of the last, so the same result can come up twice — past the repeat figure above, seeing one twice is more likely than not.
How to use this tool
- Press generate for a migration name.
- Generate again for another one.
Common use cases
- Writing a database migration
- Naming-convention reference
- Documentation examples
Limitations and good to know
- Timestamps are drawn from a small fixed set of examples rather than the actual current time, so a generated name is illustrative and not one you'd genuinely commit into a real migration folder.
- The action and subject are drawn independently from small vocabularies, so a generated description (like 'drop users_table') won't necessarily reflect a change you're actually making.
- Only one filename convention is shown; some frameworks use a different timestamp format or place the description before the timestamp instead.
Practical tips
- Never renumber a migration that has been applied anywhere. The recorded name is how the tool knows it ran, and changing it makes it run again against a schema that already has it.
Each part of the result is chosen independently with your browser's cryptographic random number generator, so every option in a bank is equally likely. How Generate Random works.
Frequently asked questions
- What happens if two migrations get the same timestamp?
- Most migration tools sort by the full filename, so an identical timestamp with a different description still produces a defined but arbitrary order — not a guaranteed one. In practice this is rare with real timestamps generated at the moment of creation, which is one reason to always generate the real filename from your current time rather than reusing an old one.