All rules

Safety

postgresql/no-rename-column

Warn on `RENAME COLUMN` — breaks deployed code reading the old name.

  • Type problem
  • Recommended warn
  • Fixable no

Why this matters

The rename completes atomically in the database, but every running app instance that still references the old name starts erroring the moment the migration runs. Use add → dual-write → backfill → drop across separate deploys.

Examples

Incorrect

Incorrect
ALTER TABLE users RENAME COLUMN email_address TO email;

Correct

Correct
ALTER TABLE users ADD COLUMN email text;

Configure it

// eslint.config.js
import postgresql from "eslint-plugin-postgresql";

export default [
  {
    files: ["**/*.sql"],
    languageOptions: {
      parser: postgresql.configs.recommended.languageOptions.parser,
    },
    plugins: { postgresql },
    rules: {
      "postgresql/no-rename-column": "warn",
    },
  },
];

Options

This rule has no options.

Try this rule

Edit the SQL — only no-rename-column is enabled.

Pre-filled with the first incorrect example. Toggle off in the rule shelf to see how the diagnostic disappears.

0 errors 0 warnings parse 0ms · rules 0ms
Diagnostics

No issues found.

2 rules enabled.

Rule under test no-rename-column — plus no-syntax-error as a safety net.
eslint-plugin-postgresql

An ESLint plugin that lints .sql files with real PostgreSQL grammar and a curated set of best-practice rules.

© 2026 eslint-plugin-postgresql contributors Built on libpg-query · PostgreSQL 17