agentleFS
pgplexpgplex/pgschema/.claude/skills/run_tests/SKILL.md

run_tests

Skill1.1k starsChanged 9 months agoApache-2.0View on GitHub

Run pgschema automated tests (go test) to validate diff logic, plan generation, and dump functionality using test fixtures. Use this skill whenever you need to run tests, debug test failures, add new test cases, regenerate expected outputs, or validate changes across PostgreSQL versions 14-18.

2 other projects use a version of this.

Trending

More talk lately.about the whole repository

Dec 2025: 0 mentionsJan 2026: 0 mentionsFeb 2026: 0 mentionsMar 2026: 2 mentionsApr 2026: 2 mentionsMay 2026: 0 mentionsJun 2026: 1 mentionJul 2026: 0 mentionsAug 2026: 2 mentionsSep 2026: 3 mentionsOct 2026: 8 mentionsNov 2026: 4 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the pgplex/pgschema repository that our weekly crawl found. There is no adoption data for this file yet.

Most recently taken up by

Who's talking about pgplex/pgschema

The biggest 5 of 22 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 22

Talked about on GitHub (22 times).

On GitHub · 22

17 more on GitHub
  • Other versions2 projects use a version of this.

    Word for word · 1

    1. pgschema/pgschema★ 1.1k100% same

    Edited · 0

    None found.

    Wrote their own version · 1

    1. androidx/androidx★ 6.1ksame name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository7 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

5 rules. About 0 are common, 1 is distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Run pgschema tests for validating implementation changes.

    line 8
  2. Very specific:

    Use PGSCHEMA_TEST_FILTER to scope to specific cases:

    line 20
  3. Distinctive:

    When implementation intentionally changes generated DDL:

    line 34
  4. Very specific:

    Create old.sql (starting state) and new.sql (desired state)

    line 54
  5. Very specific:

    Run without --generate to verify

    line 57

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Run Tests

Run pgschema tests for validating implementation changes.

Test Types

TypeCommandSpeedWhat it tests
Diffgo test -v ./internal/diff -run TestDiffFromFiles~2sSchema comparison logic (no DB)
Plan/Applygo test -v ./cmd -run TestPlanAndApply~30-60sFull workflow with embedded PostgreSQL
Dumpgo test -v ./cmd/dump -run TestDumpCommand~10-20sSchema extraction from test databases

Filtering Tests

Use PGSCHEMA_TEST_FILTER to scope to specific cases:

# Specific test case
PGSCHEMA_TEST_FILTER="create_trigger/add_trigger_when_distinct" go test -v ./internal/diff -run TestDiffFromFiles

# All tests in a category
PGSCHEMA_TEST_FILTER="create_trigger/" go test -v ./cmd -run TestPlanAndApply

Categories (in testdata/diff/): comment/, create_domain/, create_function/, create_index/, create_materialized_view/, create_policy/, create_procedure/, create_sequence/, create_table/, create_trigger/, create_type/, create_view/, default_privilege/, privilege/, dependency/, online/, migrate/

Regenerating Expected Output

When implementation intentionally changes generated DDL:

PGSCHEMA_TEST_FILTER="category/test_name" go test -v ./cmd -run TestPlanAndApply --generate

This overwrites diff.sql, plan.json, plan.sql, plan.txt. Always review with git diff afterward and re-run without --generate to confirm.

Testing Across PostgreSQL Versions

PGSCHEMA_POSTGRES_VERSION=14 go test -v ./cmd/dump -run TestDumpCommand_Employee
PGSCHEMA_POSTGRES_VERSION=17 PGSCHEMA_TEST_FILTER="create_trigger/" go test -v ./cmd -run TestPlanAndApply

Supported: 14, 15, 16, 17, 18.

Adding a New Test Case

  1. Create directory: mkdir -p testdata/diff/<category>/<test_name>
  2. Create old.sql (starting state) and new.sql (desired state)
  3. Generate expected files: PGSCHEMA_TEST_FILTER="<category>/<test_name>" go test -v ./cmd -run TestPlanAndApply --generate
  4. Review generated diff.sql and plan files
  5. Run without --generate to verify

For dump tests, create testdata/dump/<name>/ with manifest.json, raw.sql, pgdump.sql, pgschema.sql and register in cmd/dump/dump_integration_test.go.

Test Data Structure

testdata/diff/<category>/<test_name>/
├── old.sql       # Starting schema
├── new.sql       # Desired schema
├── diff.sql      # Expected migration DDL
├── plan.json     # Plan in JSON
├── plan.sql      # Plan as SQL
└── plan.txt      # Plan as text

Recommended Testing Order

  1. Fast iteration: diff tests first (no DB startup)
  2. Full validation: integration tests for the same category
  3. Before commit: go test -v ./... (or scoped to affected areas if full suite times out)

Environment Variables

VariablePurposeExample
PGSCHEMA_TEST_FILTERRun specific test cases"create_trigger/"
PGSCHEMA_POSTGRES_VERSIONTest specific PG version14, 17

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.