diff --git a/.claude/skills/pg_dump/SKILL.md b/.claude/skills/pg_dump/SKILL.md
index 8cde6765..a1c57463 100644
--- a/.claude/skills/pg_dump/SKILL.md
+++ b/.claude/skills/pg_dump/SKILL.md
@@ -13,7 +13,7 @@ Invoke this skill when:
 - Adding support for new PostgreSQL schema objects
 - Debugging system catalog queries in `ir/inspector.go`
 - Understanding how PostgreSQL represents objects internally
-- Handling version-specific PostgreSQL features (versions 14-17)
+- Handling version-specific PostgreSQL features (versions 14-18)
 - Learning correct DDL formatting patterns
 - Understanding object dependency relationships
 
@@ -228,7 +228,7 @@ type Index struct {
 
 5. **Test incrementally**: After adapting from pg_dump, test against real PostgreSQL instances using pgschema's embedded-postgres integration tests
 
-6. **Version awareness**: Check how pg_dump handles version differences - pgschema supports PostgreSQL 14-17, so you may need conditional logic
+6. **Version awareness**: Check how pg_dump handles version differences - pgschema supports PostgreSQL 14-18, so you may need conditional logic
 
 ## Verification Checklist
 
@@ -242,4 +242,4 @@ After consulting pg_dump and implementing in pgschema:
 - [ ] Integration test added in `testdata/diff/`
 - [ ] Test passes with `go test -v ./internal/diff -run TestDiffFromFiles`
 - [ ] Test passes with `go test -v ./cmd -run TestPlanAndApply`
-- [ ] Tested against multiple PostgreSQL versions (14-17)
+- [ ] Tested against multiple PostgreSQL versions (14-18)
diff --git a/.claude/skills/postgres_syntax/SKILL.md b/.claude/skills/postgres_syntax/SKILL.md
index 7ffda1ff..e7e356ba 100644
--- a/.claude/skills/postgres_syntax/SKILL.md
+++ b/.claude/skills/postgres_syntax/SKILL.md
@@ -554,7 +554,7 @@ PostgreSQL syntax evolves across versions:
 - **PostgreSQL 16**: Added SQL/JSON functions
 - **PostgreSQL 17**: Added `MERGE` enhancements, incremental view maintenance
 
-**For pgschema (supports 14-17)**:
+**For pgschema (supports 14-18)**:
 - Check gram.y history to see when features were added
 - Add version detection in parser if needed
 - Test across all supported versions
@@ -572,7 +572,7 @@ After consulting gram.y and implementing in pgschema:
 - [ ] DDL generation produces valid PostgreSQL syntax
 - [ ] Test case added with sample SQL
 - [ ] Tested against PostgreSQL (manually or via integration test)
-- [ ] Works across PostgreSQL versions 14-17
+- [ ] Works across PostgreSQL versions 14-18
 
 ## Quick Reference
 
diff --git a/.claude/skills/run_tests/SKILL.md b/.claude/skills/run_tests/SKILL.md
index 922f69e1..d7e4489f 100644
--- a/.claude/skills/run_tests/SKILL.md
+++ b/.claude/skills/run_tests/SKILL.md
@@ -148,7 +148,7 @@ PGSCHEMA_TEST_FILTER="create_trigger/add_trigger" go test -v ./cmd -run TestPlan
 
 ### Workflow 3: Test Across PostgreSQL Versions
 
-Test against different PostgreSQL versions (14-17):
+Test against different PostgreSQL versions (14-18):
 
 **Command**:
 ```bash
@@ -167,7 +167,7 @@ PGSCHEMA_POSTGRES_VERSION=17 go test -v ./cmd/dump -run TestDumpCommand_Employee
 PGSCHEMA_POSTGRES_VERSION=15 PGSCHEMA_TEST_FILTER="create_trigger/" go test -v ./cmd -run TestPlanAndApply
 ```
 
-**Supported versions**: 14, 15, 16, 17
+**Supported versions**: 14, 15, 16, 17, 18
 
 ### Workflow 4: Run All Tests
 
@@ -486,7 +486,7 @@ PGSCHEMA_TEST_FILTER="slow_test" go test -v ./cmd -run TestPlanAndApply -timeout
 | Variable | Purpose | Example |
 |----------|---------|---------|
 | `PGSCHEMA_TEST_FILTER` | Run specific test cases | `"create_trigger/"` |
-| `PGSCHEMA_POSTGRES_VERSION` | Test specific PG version | `14`, `15`, `16`, `17` |
+| `PGSCHEMA_POSTGRES_VERSION` | Test specific PG version | `14`, `15`, `16`, `17`, `18` |
 | `PGHOST`, `PGPORT`, `PGUSER`, etc. | Database connection (if not using embedded) | See `.env` |
 
 ## Best Practices
diff --git a/.claude/skills/validate_db/SKILL.md b/.claude/skills/validate_db/SKILL.md
index 95b216b6..76549bd3 100644
--- a/.claude/skills/validate_db/SKILL.md
+++ b/.claude/skills/validate_db/SKILL.md
@@ -16,7 +16,7 @@ Invoke this skill when:
 - Debugging schema introspection issues
 - Verifying system catalog query results
 - Understanding how PostgreSQL formats specific DDL
-- Checking version-specific behavior (PostgreSQL 14-17)
+- Checking version-specific behavior (PostgreSQL 14-18)
 - Validating migration plans before implementing new features
 
 ## Database Connection Information
@@ -336,7 +336,7 @@ WHERE c.relname = 'test_pk_order';
 
 ### Workflow 5: Cross-Version Testing
 
-**Purpose**: Validate behavior across PostgreSQL versions 14-17
+**Purpose**: Validate behavior across PostgreSQL versions 14-18
 
 **Steps**:
 
@@ -642,5 +642,5 @@ When validating implementation:
 - [ ] Plan generates correct migration DDL
 - [ ] Apply successfully executes migration
 - [ ] Final state matches expected schema
-- [ ] Tested across PostgreSQL versions (if version-specific)
+- [ ] Tested across PostgreSQL versions 14-18 (if version-specific)
 - [ ] Test database cleaned up after validation
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 848c2771..d4b6ad39 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -47,6 +47,11 @@ jobs:
           echo "Testing with PostgreSQL 17"
           PGSCHEMA_POSTGRES_VERSION=17 go test -v ./...
 
+      - name: Run tests (PostgreSQL 18)
+        run: |
+          echo "Testing with PostgreSQL 18"
+          PGSCHEMA_POSTGRES_VERSION=18 go test -v ./...
+
   # Build Linux binaries using native Go cross-compilation
   build-linux:
     needs: test
diff --git a/CLAUDE.md b/CLAUDE.md
index 71d6c264..1da852c8 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -14,9 +14,9 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
 The tool is written in Go 1.24+ (toolchain go1.24.7) and uses:
 
 - Cobra for CLI commands
-- embedded-postgres v1.32.0 for plan command (temporary instances) and testing (no Docker required)
+- embedded-postgres v1.33.0 for plan command (temporary instances) and testing (no Docker required)
 - pgx/v5 v5.7.5 for database connections
-- Supports PostgreSQL versions 14-17
+- Supports PostgreSQL versions 14-18
 
 Key differentiators:
 
@@ -184,7 +184,7 @@ The tool supports comprehensive PostgreSQL schema objects (see `ir/ir.go` for co
   - `PGSCHEMA_PLAN_PASSWORD` - Plan database password
 - **Environment files**: `.env` - automatically loaded by main.go
 - **Test filtering**: `PGSCHEMA_TEST_FILTER` - run specific test cases (e.g., `"create_table/"` or `"create_table/add_column"`)
-- **Postgres version**: `PGSCHEMA_POSTGRES_VERSION` - test against specific versions (14, 15, 16, 17)
+- **Postgres version**: `PGSCHEMA_POSTGRES_VERSION` - test against specific versions (14, 15, 16, 17, 18)
 
 ## Important Implementation Notes
 
diff --git a/README.md b/README.md
index b50b9788..64b0a006 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@ Think of it as Terraform for your Postgres schemas - declare your desired state,
 
 ## Key differentiators from other tools
 
-1. **Comprehensive Postgres Support**: Handles virtually all schema-level database objects across Postgres versions 14 through 17
+1. **Comprehensive Postgres Support**: Handles virtually all schema-level database objects across Postgres versions 14 through 18
 1. **State-Based Terraform-Like Workflow**: No separate migration table needed to track migration history - determines changes by comparing your schema files with actual database state
 1. **Schema-Level Focus**: Designed for real-world Postgres usage patterns, from single-schema applications to multi-tenant architectures
 1. **No Shadow Database Required**: Works directly with your schema files and target database - no temporary databases needed for validation
diff --git a/docs/faq.mdx b/docs/faq.mdx
index 90429165..b7a89b40 100644
--- a/docs/faq.mdx
+++ b/docs/faq.mdx
@@ -12,7 +12,7 @@ title: "FAQ"
 
 ### Which PostgreSQL versions are supported?
 
-pgschema is tested with PostgreSQL versions 14, 15, 16, and 17. While it may work with older versions, we recommend using one of these tested versions for the best experience.
+pgschema is tested with PostgreSQL versions 14, 15, 16, 17, and 18. While it may work with older versions, we recommend using one of these tested versions for the best experience.
 
 ### What operating systems are supported?
 
diff --git a/go.mod b/go.mod
index 33974d8d..384226b4 100644
--- a/go.mod
+++ b/go.mod
@@ -6,7 +6,7 @@ toolchain go1.24.7
 
 require (
 	github.com/BurntSushi/toml v1.5.0
-	github.com/fergusstrange/embedded-postgres v1.32.0
+	github.com/fergusstrange/embedded-postgres v1.33.0
 	github.com/google/go-cmp v0.7.0
 	github.com/jackc/pgx/v5 v5.7.5
 	github.com/joho/godotenv v1.5.1
diff --git a/go.sum b/go.sum
index 589351a6..25c5a9fd 100644
--- a/go.sum
+++ b/go.sum
@@ -4,8 +4,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6N
 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/fergusstrange/embedded-postgres v1.32.0 h1:kh2ozEvAx2A0LoIJZEGNwHmoFTEQD243KrHjifcYGMo=
-github.com/fergusstrange/embedded-postgres v1.32.0/go.mod h1:w0YvnCgf19o6tskInrOOACtnqfVlOvluz3hlNLY7tRk=
+github.com/fergusstrange/embedded-postgres v1.33.0 h1:ka8vmRpm4IDsES7NPXQ/NThAp1fc/f+crcXYjCW7wK0=
+github.com/fergusstrange/embedded-postgres v1.33.0/go.mod h1:w0YvnCgf19o6tskInrOOACtnqfVlOvluz3hlNLY7tRk=
 github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
 github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
 github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
diff --git a/internal/postgres/embedded.go b/internal/postgres/embedded.go
index 63adfb5f..ea42db61 100644
--- a/internal/postgres/embedded.go
+++ b/internal/postgres/embedded.go
@@ -231,19 +231,21 @@ func findAvailablePort() (int, error) {
 }
 
 // mapToEmbeddedPostgresVersion maps a PostgreSQL major version to embedded-postgres version
-// Supported versions: 14, 15, 16, 17
+// Supported versions: 14, 15, 16, 17, 18
 func mapToEmbeddedPostgresVersion(majorVersion int) (PostgresVersion, error) {
 	switch majorVersion {
 	case 14:
-		return PostgresVersion("14.18.0"), nil
+		return embeddedpostgres.V14, nil
 	case 15:
-		return PostgresVersion("15.13.0"), nil
+		return embeddedpostgres.V15, nil
 	case 16:
-		return PostgresVersion("16.9.0"), nil
+		return embeddedpostgres.V16, nil
 	case 17:
-		return PostgresVersion("17.5.0"), nil
+		return embeddedpostgres.V17, nil
+	case 18:
+		return embeddedpostgres.V18, nil
 	default:
-		return "", fmt.Errorf("unsupported PostgreSQL version %d (supported: 14, 15, 16, 17)", majorVersion)
+		return "", fmt.Errorf("unsupported PostgreSQL version %d (supported: 14-18)", majorVersion)
 	}
 }
 
diff --git a/ir/README.md b/ir/README.md
index 9d611e25..cbaf7bd7 100644
--- a/ir/README.md
+++ b/ir/README.md
@@ -147,7 +147,7 @@ go test -short -v ./...
 ## Compatibility
 
 - **Go**: 1.24.0+
-- **PostgreSQL**: 14, 15, 16, 17
+- **PostgreSQL**: 14, 15, 16, 17, 18
 
 ## License
 
diff --git a/testutil/postgres.go b/testutil/postgres.go
index 3050a5d6..754c011f 100644
--- a/testutil/postgres.go
+++ b/testutil/postgres.go
@@ -8,6 +8,7 @@ import (
 	"os"
 	"testing"
 
+	embeddedpostgres "github.com/fergusstrange/embedded-postgres"
 	_ "github.com/jackc/pgx/v5/stdlib"
 	"github.com/pgschema/pgschema/internal/postgres"
 	"github.com/pgschema/pgschema/ir"
@@ -133,20 +134,22 @@ func ConnectToPostgres(t testing.TB, embeddedPG *postgres.EmbeddedPostgres) (con
 
 // getPostgresVersion returns the PostgreSQL version to use for testing.
 // It reads from the PGSCHEMA_POSTGRES_VERSION environment variable,
-// defaulting to "17" if not set.
+// defaulting to "18" if not set.
 func getPostgresVersion() postgres.PostgresVersion {
 	versionStr := os.Getenv("PGSCHEMA_POSTGRES_VERSION")
 	switch versionStr {
 	case "14":
-		return postgres.PostgresVersion("14.18.0")
+		return embeddedpostgres.V14
 	case "15":
-		return postgres.PostgresVersion("15.13.0")
+		return embeddedpostgres.V15
 	case "16":
-		return postgres.PostgresVersion("16.9.0")
-	case "17", "":
-		return postgres.PostgresVersion("17.5.0")
+		return embeddedpostgres.V16
+	case "17":
+		return embeddedpostgres.V17
+	case "18", "":
+		return embeddedpostgres.V18
 	default:
-		return postgres.PostgresVersion("17.5.0")
+		return embeddedpostgres.V18
 	}
 }
 
