diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs index fdbadee..31d5617 100644 --- a/docs/astro.config.mjs +++ b/docs/astro.config.mjs @@ -27,6 +27,10 @@ export default defineConfig({ label: 'Quick Start', link: '/intro/quick-start/', }, + { + label: 'FAQ', + link: '/intro/faq/', + }, ], }, { diff --git a/docs/src/content/docs/intro/faq.mdx b/docs/src/content/docs/intro/faq.mdx new file mode 100644 index 0000000..a97574c --- /dev/null +++ b/docs/src/content/docs/intro/faq.mdx @@ -0,0 +1,19 @@ +--- +title: "FAQ" +description: "Frequently asked questions about Emigrate." +--- + +## Why no `down` migrations? + +> Always forward never backwards. + +Many other migration tools support `down` migrations, but in all the years we have been +doing migrations we have never needed to rollback a migration in production, +in that case we would just write a new migration to fix the problem. + +In our experience the only time `down` migrations are useful is in development, +and in such case you just revert the migration manually and fix the `up` migration. + +The benefit of this is that you don't have to worry about writing `down` migrations, and you can focus on writing the `up` migrations. +This way you will only ever have to write `down` migrations when they are really necessary instead of for every migration +(which makes it the exception rather than the rule, which is closer to the truth).