# Migration Releases

The `main.go` is a program that lists all releases and which migrations are contained with each upgrade.

# Usage

```bash
releasemigrations [--patches] [--minors] [--majors]
  -after-v2
        Only include releases after v2.0.0
  -dir string
        Migration directory (default "coderd/database/migrations")
  -list
        List migrations
  -majors
        Include major releases
  -minors
        Include minor releases
  -patches
        Include patches releases
  -versions string
        Comma separated list of versions to use. This skips uses git tag to find tags.
```

# Examples

## Find all migrations between 2 versions

Going from 2.3.0 to 2.4.0

```bash
$ go run scripts/releasemigrations/main.go --list --versions=v2.3.0,v2.4.0                                                                                                       11:47:00 AM
2023/11/21 11:47:09 [minor] 4 migrations added between v2.3.0 and v2.4.0
2023/11/21 11:47:09     coderd/database/migrations/000165_prevent_autostart_days.up.sql
2023/11/21 11:47:09     coderd/database/migrations/000166_template_active_version.up.sql
2023/11/21 11:47:09     coderd/database/migrations/000167_workspace_agent_api_version.up.sql
2023/11/21 11:47:09     coderd/database/migrations/000168_pg_coord_tailnet_v2_api.up.sql
2023/11/21 11:47:09 Patches: 0 (0 with migrations)
2023/11/21 11:47:09 Minors: 1 (1 with migrations)
2023/11/21 11:47:09 Majors: 0 (0 with migrations)
```

## Looking at all patch releases after v2

```bash
$ go run scripts/releasemigrations/main.go --patches --after-v2                                                                                                                  11:47:09 AM
2023/11/21 11:48:00 [patch] No migrations added between v2.0.0 and v2.0.1
2023/11/21 11:48:00 [patch] 2 migrations added between v2.0.1 and v2.0.2
2023/11/21 11:48:00 [patch] No migrations added between v2.1.0 and v2.1.1
2023/11/21 11:48:00 [patch] No migrations added between v2.1.1 and v2.1.2
2023/11/21 11:48:00 [patch] No migrations added between v2.1.2 and v2.1.3
2023/11/21 11:48:00 [patch] 1 migrations added between v2.1.3 and v2.1.4
2023/11/21 11:48:00 [patch] 2 migrations added between v2.1.4 and v2.1.5
2023/11/21 11:48:00 [patch] 1 migrations added between v2.3.0 and v2.3.1
2023/11/21 11:48:00 [patch] 1 migrations added between v2.3.1 and v2.3.2
2023/11/21 11:48:00 [patch] 1 migrations added between v2.3.2 and v2.3.3
2023/11/21 11:48:00 Patches: 10 (6 with migrations)
2023/11/21 11:48:00 Minors: 4 (4 with migrations)
2023/11/21 11:48:00 Majors: 0 (0 with migrations)
```

## Seeing all the noise this thing can make

This shows when every migration was introduced.

```bash
$ go run scripts/releasemigrations/main.go --patches --minors --majors --list
# ...
2023/11/21 11:48:31 [minor] 5 migrations added between v2.2.1 and v2.3.0
2023/11/21 11:48:31     coderd/database/migrations/000160_provisioner_job_status.up.sql
2023/11/21 11:48:31     coderd/database/migrations/000161_workspace_agent_stats_template_id_created_at_user_id_include_sessions.up.sql
2023/11/21 11:48:31     coderd/database/migrations/000162_workspace_automatic_updates.up.sql
2023/11/21 11:48:31     coderd/database/migrations/000163_external_auth_extra.up.sql
2023/11/21 11:48:31     coderd/database/migrations/000164_archive_template_versions.up.sql
2023/11/21 11:48:31 [patch] 1 migrations added between v2.3.0 and v2.3.1
2023/11/21 11:48:31     coderd/database/migrations/000165_prevent_autostart_days.up.sql
2023/11/21 11:48:31 [patch] 1 migrations added between v2.3.1 and v2.3.2
2023/11/21 11:48:31     coderd/database/migrations/000166_template_active_version.up.sql
2023/11/21 11:48:31 [patch] 1 migrations added between v2.3.2 and v2.3.3
2023/11/21 11:48:31     coderd/database/migrations/000167_workspace_agent_api_version.up.sql
2023/11/21 11:48:31 [minor] 1 migrations added between v2.3.3 and v2.4.0
2023/11/21 11:48:31     coderd/database/migrations/000168_pg_coord_tailnet_v2_api.up.sql
2023/11/21 11:48:31 Patches: 122 (55 with migrations)
2023/11/21 11:48:31 Minors: 31 (26 with migrations)
2023/11/21 11:48:31 Majors: 1 (1 with migrations)
```
