---
name: Bitrix PostgreSQL
slug: bitrix-postgresql
category: DevOps
description: Provides guidance on configuring Bitrix with PostgreSQL, migrating from MySQL, checking module compatibility, and writing portable code. For Enterprise editions only.
github: "https://github.com/bxmaximum/bitrix-framework-skills/tree/main/skills/bitrix-postgresql"
stars: 19
forks: 3
install: "npx degit https://github.com/bxmaximum/bitrix-framework-skills/tree/main/skills/bitrix-postgresql ~/.claude/skills/bitrix-postgresql"
installs_to: ~/.claude/skills/bitrix-postgresql
source_path: skills/bitrix-postgresql/SKILL.md
collection_size: 25
category_size: 798
collection_url: "https://dirskills.com/collections/bxmaximum/bitrix-framework-skills"
added: 2026-08-11T07:22:33.678Z
last_synced: 2026-08-11T07:22:33.678Z
canonical_url: "https://dirskills.com/skills/bitrix-postgresql"
---

# Bitrix PostgreSQL

Provides guidance on configuring Bitrix with PostgreSQL, migrating from MySQL, checking module compatibility, and writing portable code. For Enterprise editions only.

**Install:**

```bash
npx degit https://github.com/bxmaximum/bitrix-framework-skills/tree/main/skills/bitrix-postgresql ~/.claude/skills/bitrix-postgresql
```

## README

# PostgreSQL in Bitrix

Baseline: **main 23.0+**. Supported in **Enterprise for PostgreSQL** licenses (B24 and CMS). Connection class: `\Bitrix\Main\DB\PgsqlConnection`.

## Configuration

```php
'connections' => [
    'value' => [
        'default' => [
            'className' => \Bitrix\Main\DB\PgsqlConnection::class,
            'host' => 'localhost',
            'database' => 'bx',
            'login' => 'bx',
            'password' => '***',
            'options' => \Bitrix\Main\DB\Connection::DEFERRED,
        ],
    ],
    'readonly' => true,
],
```

## Before Migration

1. Obtain Enterprise for PostgreSQL license (test key available for 6 months).
2. Update **Performance Monitor** module to 24.0.0+.
3. Project must use UTF-8 encoding.
4. Close site to visitors during migration.
5. Test on staging first — **return to MySQL after production PostgreSQL launch requires manual work**.

## Module Compatibility

Not all kernel and marketplace modules support PostgreSQL. Incompatible modules are disabled during conversion wizard.

Check custom code:
- MySQL-specific SQL (`LIMIT` syntax differences handled by SqlHelper, but raw SQL may break).
- MySQL install scripts under `install/mysql/` or `install/db/mysql/` need matching PostgreSQL scripts under `install/pgsql/` or `install/db/pgsql/`.

Find modules missing pgsql install:

```bash
for mysql in bitrix/modules/*/install/mysql/install.sql bitrix/modules/*/install/db/mysql/install.sql; do
  pgsql=$(echo $mysql | sed 's#/mysql/#/pgsql/#')
  test -e $pgsql || echo "missing: $pgsql"
done
```

Check kernel module install folders: each supporting module should have matching `install/pgsql/` **or** `install/db/pgsql/` scripts. Inspect `bitrix/modules/<module>/install/` in the project.

## Migration Methods

1. **Wizard** — Admin conversion tool (lists disabled modules on step 1).
2. **CLI** — manual server-side migration via Performance Monitor module tools.

## Writing Compatible Code

- Use ORM and `SqlHelper` — avoid MySQL-specific functions in raw SQL.
- Use `SqlExpression` placeholders instead of string concatenation.
- Test DDL in both MySQL (`install/mysql/` or `install/db/mysql/`) and PostgreSQL (`install/pgsql/` or `install/db/pgsql/`) if the module supports both.
- Avoid `ENGINE=InnoDB`, backticks-specific syntax, `UNSIGNED`.

## Checklist

- [ ] License is Enterprise for PostgreSQL.
- [ ] All custom modules checked for pgsql install scripts.
- [ ] Raw SQL audited for MySQL-specific syntax.
- [ ] Migration tested on copy before production.
- [ ] Marketplace modules verified with vendors.
