faker

Wrapper for the Faker Python library

Overview

PackageVersionCategoryLicenseLanguage
faker0.5.3LANGPostgreSQLPython
IDExtensionBinLibLoadCreateTrustRelocSchema
3210fakerNoYesNoYesNoNo-
Relatedplpython3u plpython3u pgtap dbt2 jsonb_plpython3u ltree_plpython3u hstore_plpython3u random pg_tle

Requires PL/Python3 and Python Faker; the PIGSTY DEB carries a PG17+ parser compatibility patch.

Version

TypeRepoVersionPG VerPackageDeps
EXTMIXED0.5.31817161514fakerplpython3u
RPMPGDG0.5.31817161514postgresql_faker_$v-
DEBPIGSTY0.5.31817161514postgresql-$v-fakerpostgresql-plpython3-$v, python3-fake-factory
OS / PGPG18PG17PG16PG15PG14
el8.x86_64
PGDG 0.5.3
el8.aarch64
PGDG 0.5.3
PGDG 0.5.3
el9.x86_64
el9.aarch64
el10.x86_64
el10.aarch64
d12.x86_64
d12.aarch64
d13.x86_64
d13.aarch64
u22.x86_64
u22.aarch64
PIGSTY 0.5.3
PIGSTY 0.5.3
PIGSTY 0.5.3
PIGSTY 0.5.3
PIGSTY 0.5.3
u24.x86_64
u24.aarch64
PIGSTY 0.5.3
PIGSTY 0.5.3
PIGSTY 0.5.3
PIGSTY 0.5.3
PIGSTY 0.5.3
u26.x86_64
u26.aarch64

Build

You can build the DEB packages for faker using pig build:

pig build pkg faker         # build DEB packages

Install

You can install faker directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:

pig repo add pgsql -u          # Add repo and update cache

Install the extension using pig or apt/yum/dnf:

pig install faker;          # Install for current active PG version
pig ext install -y faker -v 18  # PG 18
pig ext install -y faker -v 17  # PG 17
pig ext install -y faker -v 16  # PG 16
pig ext install -y faker -v 15  # PG 15
pig ext install -y faker -v 14  # PG 14
dnf install -y postgresql_faker_18       # PG 18
dnf install -y postgresql_faker_17       # PG 17
dnf install -y postgresql_faker_16       # PG 16
dnf install -y postgresql_faker_15       # PG 15
dnf install -y postgresql_faker_14       # PG 14
apt install -y postgresql-18-faker   # PG 18
apt install -y postgresql-17-faker   # PG 17
apt install -y postgresql-16-faker   # PG 16
apt install -y postgresql-15-faker   # PG 15
apt install -y postgresql-14-faker   # PG 14

Create Extension:

CREATE EXTENSION faker CASCADE;  -- requires: plpython3u

Usage

faker: Wrapper for the Faker Python library

faker is a PostgreSQL extension that wraps Python’s Faker library, providing functions to generate realistic fake data directly in SQL queries. It requires plpython3u.

CREATE EXTENSION faker;

Generate Fake Data

SELECT faker.name();           -- 'John Smith'
SELECT faker.first_name();     -- 'Jane'
SELECT faker.last_name();      -- 'Doe'
SELECT faker.email();          -- '[email protected]'
SELECT faker.address();        -- '123 Main St, Anytown, US 12345'
SELECT faker.company();        -- 'Smith LLC'
SELECT faker.phone_number();   -- '(555) 123-4567'
SELECT faker.text();           -- random paragraph of text
SELECT faker.city();           -- 'Portland'
SELECT faker.country();        -- 'United States'

Note: faker.date() and faker.time() are not available because date and time are reserved PostgreSQL keywords. Use faker.date_between() or faker.date_this_century() instead.

Populate Tables with Fake Data

INSERT INTO users (name, email, address, created_at)
SELECT
  faker.name(),
  faker.email(),
  faker.address(),
  faker.date_this_century()::timestamp
FROM generate_series(1, 1000);

Localized Fake Data

Locale is set per session, not per function call:

SELECT faker.faker('de_DE');   -- set locale for this session
SELECT faker.name();           -- returns a German name
SELECT faker.address();        -- returns a German address

Unique Values

Use the unique_ prefix to guarantee unique values within a session:

SELECT faker.unique_name();
SELECT faker.unique_email();

Discover All Functions

SELECT faker._functions();     -- list all 500+ available functions

All faker functions return text. Cast explicitly for other types.

Common Faker Providers

FunctionDescription
faker.name()Full name
faker.first_name()First name
faker.last_name()Last name
faker.email()Email address
faker.company_email()Company email
faker.phone_number()Phone number
faker.address()Full address
faker.city()City name
faker.country()Country name
faker.company()Company name
faker.text()Random text
faker.date_this_century()Random date
faker.ssn()Social security number
faker.ean()EAN barcode

Last Modified 2026-07-23: update extension list to 555 (d81fc56)