---
title: "Why I don't use down migrations"
url: https://daily.dev/posts/why-i-don-t-use-down-migrations-50i9uqsyp
source_url: https://freek.dev/2900-why-i-dont-use-down-migrations
type: article
source: "FREEK.DEV"
published: 2025-08-01T09:09:32.017Z
updated: 2025-08-01T09:09:51.507Z
tags: ["database", "cicd", "php", "laravel"]
reading_time: 3
upvotes: 11
comments: 3
language: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Why I don't use down migrations

**[FREEK.DEV](https://daily.dev/sources/freek)** · 3 min read · 11 upvotes · 3 comments

## Summary

Down migrations in Laravel are often untested code that creates a false sense of security. They become problematic when new data exists after deployment, as rolling back can cause data loss or leave orphaned records. The complexity increases with modern deployment strategies where code and database versions may be misaligned. A forward-only migration approach is recommended, where issues are resolved by creating new migrations that move the schema forward rather than attempting to reverse changes.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://freek.dev/2900-why-i-dont-use-down-migrations>

## Community discussion

Top comments from developers on daily.dev.

**@rickvianninja** · 2 upvotes

> down migration is not a straight forward rollback, it is , by itself a forward revert action.
> there are lots of scenario where the down migration will turn things back to where before you execute the migration,
>
> but it is better to at least prepare down migration, and understand the consequences

**@micahnorwoodjordan** · 0 upvotes

> in my humble opinion, i think it's a little obtuse to neglect rollbacks, and only "moving forward". sounds like your priming your db schema to be very bloated and inefficient. the truth is that we sometimes get migrations wrong -- it shouldnt happen often but it does happen sometimes. and sometimes this means you need to write helper scripts to preserve new data while rolling back.
>
> the issue here isnt rollbacks -- it's the misfires, lack of testing, and assumptions made during development leading to the rollbacks in production.
>
> issues like this are handled so gracefully in django. django...

**@wendermata** · 0 upvotes

> i think migrations isn't a problem when you really understand SQL. Talking about myself (currently working in .net platform), everytime EF Core generates a migration for me, i take a time to deeply understand the rollback actions, sometimes indeed i had to rewrite (generate some scripts for example) the down instructions. When u just trust 100% on the generated code, not understading what you're really deploying in your database, its guaranted that some day it will crash your database. In that case, its better to not use migrations at all

## Similar posts on daily.dev

- [Don’t just attend KubeCon \+ CloudNativeCon, Merge Forward your experience\!](https://daily.dev/posts/don-t-just-attend-kubecon-cloudnativecon-merge-forward-your-experience--l0rpp73x8) · CNCF · 0 upvotes · 0 comments
- [Announcing H2 2026 KCDs](https://daily.dev/posts/announcing-h2-2026-kcds-m96goajm1) · CNCF · 1 upvotes · 0 comments
- [Two months of Open Community Groups](https://daily.dev/posts/two-months-of-open-community-groups-asf52zhbs) · CNCF · 0 upvotes · 0 comments

---

Tags: [#database](https://daily.dev/tags/database), [#cicd](https://daily.dev/tags/cicd), [#php](https://daily.dev/tags/php), [#laravel](https://daily.dev/tags/laravel)

[View this post on daily.dev](https://daily.dev/posts/why-i-don-t-use-down-migrations-50i9uqsyp)
