1
- # Build your App
2
-
3
- ## Project Structure
4
-
5
- ```
6
- π bin/ β Helper scripts (e.g. wrappers for CLI tools)
7
- π caddy/ β Custom Caddy configuration and certificates
8
- π docs/ β Markdown files for SuperStack documentation
9
- π postgres/ β SQL migrations and configuration of the postgres container
10
- π compose.yaml β Main Docker Compose config
11
- π compose.override.yaml β Optional local overrides (development only)
12
- π example.env β Example environment variables β copy to `.env`
13
- π LICENSE β License file (MIT)
14
- π logo.png β SuperStack logo for README/docs
15
- π mkdocs.yml β MkDocs configuration for documentation site
16
- π README.md β Overview and quick start for the repository
17
- ```
18
-
19
- ## π Migrations
1
+ # π Migrations
20
2
21
3
SuperStack includes a simple built-in system for managing database schema
22
4
migrations.
23
5
24
- ### βοΈ Writing Migrations
6
+ ## βοΈ Writing Migrations
25
7
26
8
Place your migration scripts in:
27
9
@@ -36,7 +18,7 @@ Each file should be:
36
18
- Written in plain SQL
37
19
- But can include environment variables.
38
20
39
- ### βΆοΈ Applying Migrations
21
+ ## βΆοΈ Applying Migrations
40
22
41
23
When the Postgres container starts with no existing data, SuperStack will
42
24
automatically run migrations once.
@@ -59,7 +41,7 @@ Already-applied scripts are skipped on subsequent runs.
59
41
60
42
> π‘ ` bin/postgres ` is short for ` docker compose exec postgres `
61
43
62
- ### π Transactions
44
+ ## π Transactions
63
45
64
46
Use ` BEGIN; ` and ` COMMIT; ` to wrap migration files when all included
65
47
statements are transactional. This ensures that all changes are applied
@@ -108,7 +90,7 @@ DISCARD ALL
108
90
LOAD
109
91
```
110
92
111
- ### π Nuke Everything
93
+ ## π Nuke Everything
112
94
113
95
If you want to start fresh, wipe your database and re-run all migrations from
114
96
scratch:
0 commit comments