Home

>

Tools

>

Payload CMS

>

Releases

>

3.0.0-beta.14

Payload CMS Release: 3.0.0-beta.14

Pre Release

Tag Name: v3.0.0-beta.14

Release Date: 4/23/2024

Payload CMS LogoPayload CMS

Payload CMS is a modern, self-hosted headless content management system built with TypeScript, Node.js, and MongoDB. It's designed specifically for developers who want full control over their content management system while maintaining a powerful admin interface for content editors.

TL;DR

Payload CMS v3.0.0-beta.14 Release

What's New

This beta release primarily focuses on fixing critical issues with PostgreSQL database adapter, dependency management, and development workflow improvements. The most significant change is the shortening of relation names in the PostgreSQL adapter to prevent common errors.

Why It Matters

The PostgreSQL relation name shortening is a breaking change that resolves common errors users were experiencing with long relation names. This release also improves dependency management across packages, particularly for GraphQL and storage adapters.

Who Should Care

Users of the PostgreSQL adapter need to apply database migrations. Developers using Next.js with GraphQL and those working with S3 or Vercel Blob storage adapters will benefit from dependency fixes.

Highlight of the Release

    • Fixed PostgreSQL relation names to prevent common errors (breaking change)
    • Improved HMR support for PostgreSQL by properly destroying the database before re-initialization
    • Fixed dependency management for storage adapters (S3 and Vercel Blob)
    • Moved graphql-http from devDependencies to dependencies in Next.js package
    • Fixed database adapter installation in create-payload-app

Migration Guide

PostgreSQL Migration Guide

This release includes a breaking change for users of the @payloadcms/db-postgres adapter. The names of auto-generated PostgreSQL relations have been shortened to prevent common errors related to PostgreSQL's name length limitations.

Required Steps:

  1. Run your application in development mode
  2. Generate a new migration:
    pnpm payload migrate:create
    
  3. Apply the migration to your database:
    pnpm payload migrate
    

This migration will update your database schema to use the new shortened relation names.

Upgrade Recommendations

For PostgreSQL Users

This is an important update that resolves common errors with relation names. Upgrade is recommended, but be prepared to run database migrations as outlined in the migration guide.

For Next.js with GraphQL Users

This update fixes dependency issues with graphql-http in the Next.js package. Upgrade is recommended for stability.

For Storage Adapter Users

If you're using S3 or Vercel Blob storage adapters, this update fixes dependency issues. Upgrade is recommended for reliability.

For Other Users

This update primarily focuses on specific issues and contains no major new features. You can upgrade at your convenience, but there's no urgent need if you're not affected by the fixed issues.

Bug Fixes

PostgreSQL Adapter Fixes

  • Shortened relation names to prevent errors related to PostgreSQL's name length limitations
  • Improved Hot Module Reloading (HMR) by properly destroying the database adapter before re-initialization
  • Fixed database adapter installation in package.json when using create-payload-app

Dependency Fixes

  • Fixed storage adapter dependencies for S3 and Vercel Blob adapters
  • Moved graphql-http from devDependencies to dependencies in the Next.js package
  • Reduced GraphQL dependencies to improve package management

CI/Build Improvements

  • Removed email E2E tests due to failing Ethereal calls
  • Adjusted pnpm engines version for better compatibility

New Features

No significant new features were added in this release. This beta update focuses primarily on bug fixes, dependency management, and development workflow improvements.

Security Updates

No security fixes were mentioned in this release.

Performance Improvements

Development Workflow Improvements

  • Reduced GraphQL dependencies which may lead to smaller bundle sizes and faster installations
  • Improved HMR for PostgreSQL by properly destroying the database connection before re-initialization, leading to more reliable development experience

No specific end-user performance improvements were noted in this release.

Impact Summary

This release primarily impacts PostgreSQL users with a breaking change that requires database migration but ultimately improves stability by shortening relation names to prevent common errors. It also addresses several dependency issues across packages, particularly for GraphQL in Next.js and storage adapters (S3 and Vercel Blob).

The most significant impact is on development workflow, with improved hot module reloading for PostgreSQL and better dependency management. The changes are focused on fixing specific issues rather than adding new features, making this a maintenance-focused release that improves overall stability and compatibility.

PostgreSQL users will need to follow the migration steps, but will benefit from fewer errors related to relation name length limitations. Next.js developers using GraphQL and storage adapter users will experience more reliable operation without needing to take any special migration steps.

Full Release Notes

v3.0.0-beta.14

⚠ BREAKING CHANGES

@payloadcms/db-postgres

  • fix(db-postgres): shortens relation names (#5976)

Shortens the name of auto-generated Postgres relations. Should dramatically reduce errors for users in PG. Also handles an issue with HMR in Postgres by properly destroying the database adapter before re-initializing it.

This change will require anyone running @payloadcms/db-postgres to create a new migration and run it against their database.

  • Run your application in development
  • pnpm payload migrate:create will generate the new migration
  • pnpm payload migrate will run the migration against your DB

Statistics:

File Changed51
Line Additions838
Line Deletions243
Line Changes1,081
Total Commits16

User Affected:

  • Must create and run a new migration to adapt to shortened relation names
  • Will experience fewer errors related to relation name length limitations
  • Will benefit from improved hot module reloading with proper database destruction

Contributors:

JarrodMFleschdenolfejmikrut