faker
faker : Wrapper for the Faker Python library
Overview
| ID | Extension | Package | Version | Category | License | Language |
|---|---|---|---|---|---|---|
| 3210 | faker | faker | 0.5.3 | LANG | PostgreSQL | Python |
| Attribute | Has Binary | Has Library | Need Load | Has DDL | Relocatable | Trusted |
|---|---|---|---|---|---|---|
--s-d-- | No | Yes | No | Yes | no | no |
| Relationships | |
|---|---|
| Requires | plpython3u |
| See Also | 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.
Packages
| Type | Repo | Version | PG Major Compatibility | Package Pattern | Dependencies |
|---|---|---|---|---|---|
| EXT | MIXED | 0.5.3 | 18 17 16 15 14 | faker | plpython3u |
| RPM | PGDG | 0.5.3 | 18 17 16 15 14 | postgresql_faker_$v | - |
| DEB | PIGSTY | 0.5.3 | 18 17 16 15 14 | postgresql-$v-faker | postgresql-plpython3-$v, python3-fake-factory |
| Linux / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
el8.x86_64 | PGDG 0.5.3 | PGDG 0.5.3 | PGDG 0.5.3 | PGDG 0.5.3 | PGDG 0.5.3 |
el8.aarch64 | PGDG 0.5.3 | PGDG 0.5.3 | PGDG 0.5.3 | PGDG 0.5.3 | PGDG 0.5.3 |
el9.x86_64 | PGDG 0.5.3 | PGDG 0.5.3 | PGDG 0.5.3 | PGDG 0.5.3 | PGDG 0.5.3 |
el9.aarch64 | PGDG 0.5.3 | PGDG 0.5.3 | PGDG 0.5.3 | PGDG 0.5.3 | PGDG 0.5.3 |
el10.x86_64 | PGDG 0.5.3 | PGDG 0.5.3 | PGDG 0.5.3 | PGDG 0.5.3 | PGDG 0.5.3 |
el10.aarch64 | PGDG 0.5.3 | PGDG 0.5.3 | PGDG 0.5.3 | PGDG 0.5.3 | PGDG 0.5.3 |
d12.x86_64 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 |
d12.aarch64 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 |
d13.x86_64 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 |
d13.aarch64 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 |
u22.x86_64 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 |
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 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 |
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 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 |
u26.aarch64 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 | PIGSTY 0.5.3 |
Source
pig build pkg faker; # build debInstall
Make sure PGDG and PIGSTY repo available:
pig repo add pgsql -u # add both repo and update cacheInstall this extension with pig:
pig install faker; # install via package name, for the active PG version
pig install faker -v 18; # install for PG 18
pig install faker -v 17; # install for PG 17
pig install faker -v 16; # install for PG 16
pig install faker -v 15; # install for PG 15
pig install faker -v 14; # install for PG 14Create this extension with:
CREATE EXTENSION faker CASCADE; -- requires plpython3uUsage
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(); -- 'jane.doe@example.com'
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 addressUnique 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 functionsAll faker functions return text. Cast explicitly for other types.
Common Faker Providers
| Function | Description |
|---|---|
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 |