Skip to content

renamingColumn

Group destructive · Migrations only · Since 0.15.0
Diagnostic lint/renamingColumn

Sources: inspired by squawk/renaming-column

Description

Renaming columns may break existing queries and application code.

Renaming a column that is being used by an existing application or query can cause unexpected downtime. Consider creating a new column instead and migrating the data, then dropping the old column after ensuring no dependencies exist.

Examples

Invalid

ALTER TABLE users RENAME COLUMN email TO email_address;
code-block.sql:1:1 lint/renamingColumn ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  ! Renaming a column may break existing clients.

  > 1 │ ALTER TABLE users RENAME COLUMN email TO email_address;
      │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    2 │ 

  i Consider creating a new column with the desired name and migrating data instead.

How to configure

{
  "linter": {
    "rules": {
      "renamingColumn": "error"
    }
  }
}

How to suppress

Suppress this diagnostic with a comment:

-- pgls-ignore renamingColumn