Skip to content
Databases psql

PostgreSQL database naming convention

The CAF abbreviation for PostgreSQL database is psql. Names can be 3 to 63 characters long and allow lowercase alphanumerics and hyphens. The name must be globally unique across all of Azure.

Naming rules

CAF abbreviation psql
Length 3 to 63 characters
Allowed characters Lowercase letters and numbers, hyphens
Scope of uniqueness Global (must be unique across all of Azure)
CAF pattern psql-{workload}-{environment}-{region}-{instance}
Worth knowing: Globally unique name.

Rules follow Microsoft's resource naming rules and CAF abbreviations. Some resource types have extra start/end character restrictions, so verify against the official docs before locking in a convention.

Naming Databases resources

Databases have the clearest two layer split of any category. Cosmos DB (every API variant) and Azure SQL Database servers are globally unique DNS endpoints, with the actual databases and containers inside them scoped and relaxed, covered in detail in the Cosmos DB and SQL guides. MySQL and PostgreSQL flexible servers follow the identical pattern, they get a public DNS endpoint too, which is easy to forget since a MySQL server does not feel like an internet facing resource the way a storage account does.

SQL Managed Instance breaks the pattern, it is VNet injected and not globally unique the same way a logical SQL server is. The common mistake is assuming every database engine has the same globally unique server tier by default, when the rule genuinely varies by resource type, worth checking the specific rule rather than reusing an assumption from a different database service.

Example names

Generated by the same engine as the name generator, so length and character rules are already applied.

Scenario Generated name Length
Payments API, production psql-payments-prod-eus-001 26/63
Web app, development psql-webapp-dev-weu-002 23/63
Analytics with company prefix psql-contoso-analytics-stage-uks-001 36/63

Naming in Terraform and Bicep

Build the name from variables so one module produces the right name in every environment.

Terraform
locals {
  postgresql_name = lower("psql-${var.workload}-${var.environment}-${var.region}-001")
}
Bicep
var postgresqlName = toLower('psql-${workload}-${environment}-${region}-001')

Generate PostgreSQL database names for your workload

Free, no login. Validation and Terraform, Bicep, or CSV export included.

Open in the generator →

Related Databases resources

See the full list of Azure resource naming rules or read the complete CAF naming guide.