7676 < div data-md-component ="skip ">
7777
7878
79- < a href ="#build-your-app " class ="md-skip ">
79+ < a href ="#migrations " class ="md-skip ">
8080 Skip to content
8181 </ a >
8282
360360 < ul class ="md-nav__list " data-md-component ="toc " data-md-scrollfix >
361361
362362 < li class ="md-nav__item ">
363- < a href ="#project-structure " class ="md-nav__link ">
364- < span class ="md-ellipsis ">
365- Project Structure
366- </ span >
367- </ a >
368-
369- </ li >
370-
371- < li class ="md-nav__item ">
372- < a href ="#migrations " class ="md-nav__link ">
373- < span class ="md-ellipsis ">
374- 📜 Migrations
375- </ span >
376- </ a >
377-
378- < nav class ="md-nav " aria-label ="📜 Migrations ">
379- < ul class ="md-nav__list ">
380-
381- < li class ="md-nav__item ">
382363 < a href ="#writing-migrations " class ="md-nav__link ">
383364 < span class ="md-ellipsis ">
384365 ✍️ Writing Migrations
385366 </ span >
386367 </ a >
387368
388369</ li >
389-
390- < li class ="md-nav__item ">
370+
371+ < li class ="md-nav__item ">
391372 < a href ="#applying-migrations " class ="md-nav__link ">
392373 < span class ="md-ellipsis ">
393374 ▶️ Applying Migrations
394375 </ span >
395376 </ a >
396377
397378</ li >
398-
399- < li class ="md-nav__item ">
379+
380+ < li class ="md-nav__item ">
400381 < a href ="#transactions " class ="md-nav__link ">
401382 < span class ="md-ellipsis ">
402383 🔁 Transactions
403384 </ span >
404385 </ a >
405386
406387</ li >
407-
408- < li class ="md-nav__item ">
388+
389+ < li class ="md-nav__item ">
409390 < a href ="#nuke-everything " class ="md-nav__link ">
410391 < span class ="md-ellipsis ">
411392 🔄 Nuke Everything
412393 </ span >
413394 </ a >
414395
415- </ li >
416-
417- </ ul >
418- </ nav >
419-
420396</ li >
421397
422398 </ ul >
542518 < ul class ="md-nav__list " data-md-component ="toc " data-md-scrollfix >
543519
544520 < li class ="md-nav__item ">
545- < a href ="#project-structure " class ="md-nav__link ">
546- < span class ="md-ellipsis ">
547- Project Structure
548- </ span >
549- </ a >
550-
551- </ li >
552-
553- < li class ="md-nav__item ">
554- < a href ="#migrations " class ="md-nav__link ">
555- < span class ="md-ellipsis ">
556- 📜 Migrations
557- </ span >
558- </ a >
559-
560- < nav class ="md-nav " aria-label ="📜 Migrations ">
561- < ul class ="md-nav__list ">
562-
563- < li class ="md-nav__item ">
564521 < a href ="#writing-migrations " class ="md-nav__link ">
565522 < span class ="md-ellipsis ">
566523 ✍️ Writing Migrations
567524 </ span >
568525 </ a >
569526
570527</ li >
571-
572- < li class ="md-nav__item ">
528+
529+ < li class ="md-nav__item ">
573530 < a href ="#applying-migrations " class ="md-nav__link ">
574531 < span class ="md-ellipsis ">
575532 ▶️ Applying Migrations
576533 </ span >
577534 </ a >
578535
579536</ li >
580-
581- < li class ="md-nav__item ">
537+
538+ < li class ="md-nav__item ">
582539 < a href ="#transactions " class ="md-nav__link ">
583540 < span class ="md-ellipsis ">
584541 🔁 Transactions
585542 </ span >
586543 </ a >
587544
588545</ li >
589-
590- < li class ="md-nav__item ">
546+
547+ < li class ="md-nav__item ">
591548 < a href ="#nuke-everything " class ="md-nav__link ">
592549 < span class ="md-ellipsis ">
593550 🔄 Nuke Everything
594551 </ span >
595552 </ a >
596553
597- </ li >
598-
599- </ ul >
600- </ nav >
601-
602554</ li >
603555
604556 </ ul >
620572
621573
622574
623- < h1 id ="build-your-app "> Build your App</ h1 >
624- < h2 id ="project-structure "> Project Structure</ h2 >
625- < div class ="highlight "> < pre > < span > </ span > < code > 📁 bin/ → Helper scripts (e.g. wrappers for CLI tools)
626- 📁 caddy/ → Custom Caddy configuration and certificates
627- 📁 docs/ → Markdown files for SuperStack documentation
628- 📁 postgres/ → SQL migrations and configuration of the postgres container
629- 📄 compose.yaml → Main Docker Compose config
630- 📄 compose.override.yaml → Optional local overrides (development only)
631- 📄 example.env → Example environment variables — copy to `.env`
632- 📄 LICENSE → License file (MIT)
633- 📄 logo.png → SuperStack logo for README/docs
634- 📄 mkdocs.yml → MkDocs configuration for documentation site
635- 📄 README.md → Overview and quick start for the repository
636- </ code > </ pre > </ div >
637- < h2 id ="migrations "> 📜 Migrations</ h2 >
575+ < h1 id ="migrations "> 📜 Migrations</ h1 >
638576< p > SuperStack includes a simple built-in system for managing database schema
639577migrations.</ p >
640- < h3 id ="writing-migrations "> ✍️ Writing Migrations</ h3 >
578+ < h2 id ="writing-migrations "> ✍️ Writing Migrations</ h2 >
641579< p > Place your migration scripts in:</ p >
642580< div class ="highlight "> < pre > < span > </ span > < code > postgres/migrations/
643581</ code > </ pre > </ div >
@@ -648,7 +586,7 @@ <h3 id="writing-migrations">✍️ Writing Migrations</h3>
648586< li > Written in plain SQL</ li >
649587< li > But can include environment variables.</ li >
650588</ ul >
651- < h3 id ="applying-migrations "> ▶️ Applying Migrations</ h3 >
589+ < h2 id ="applying-migrations "> ▶️ Applying Migrations</ h2 >
652590< p > When the Postgres container starts with no existing data, SuperStack will
653591automatically run migrations once.</ p >
654592< p > After the first < code > docker compose up</ code > , migrations will only run if you
@@ -665,7 +603,7 @@ <h3 id="applying-migrations">▶️ Applying Migrations</h3>
665603< blockquote >
666604< p > 💡 < code > bin/postgres</ code > is short for < code > docker compose exec postgres</ code > </ p >
667605</ blockquote >
668- < h3 id ="transactions "> 🔁 Transactions</ h3 >
606+ < h2 id ="transactions "> 🔁 Transactions</ h2 >
669607< p > Use < code > BEGIN;</ code > and < code > COMMIT;</ code > to wrap migration files when all included
670608statements are transactional. This ensures that all changes are applied
671609atomically.</ p >
@@ -706,7 +644,7 @@ <h3 id="transactions">🔁 Transactions</h3>
706644< span class ="n "> DISCARD</ span > < span class ="w "> </ span > < span class ="k "> ALL</ span >
707645< span class ="k "> LOAD</ span >
708646</ code > </ pre > </ div >
709- < h3 id ="nuke-everything "> 🔄 Nuke Everything</ h3 >
647+ < h2 id ="nuke-everything "> 🔄 Nuke Everything</ h2 >
710648< p > If you want to start fresh, wipe your database and re-run all migrations from
711649scratch:</ p >
712650< div class ="highlight "> < pre > < span > </ span > < code > docker< span class ="w "> </ span > compose< span class ="w "> </ span > down< span class ="w "> </ span > --volumes
0 commit comments