Files
backend_fiesta/init/README.md
2026-09-02 10:49:46 +05:30

1.7 KiB

Local database seed

Anything in nearledb/ or cataloguedb/ is applied by Postgres, in filename order, the first time the volume is created. Editing a file later does nothing on its own — drop the volume to re-apply:

docker compose -f ../docker-compose.local.yml down -v

Why this is not optional

Fiesta runs migrations on boot, and most of them assume tables that nothing in this repository creates:

ALTER TABLE products           ADD COLUMN IF NOT EXISTS productimages
ALTER TABLE products           ADD COLUMN IF NOT EXISTS imageid
ALTER TABLE productlocations   ADD COLUMN IF NOT EXISTS publishedat

AutoMigrate covers only stockrequests, the two POS order tables and staffshifts. Against an empty database the first ALTER fails and log.Fatal stops the process — so a schema is required before the first run.

Getting the schema

Structure only, no data, no ownership:

pg_dump --schema-only --no-owner --no-privileges \
  -h <live-host> -p 5433 -U <user> -d nearledb \
  > nearledb/01-schema.sql

Take the schema, not the data. A dump with rows in it puts real customers, real orders and real (cleartext) passwords on a laptop, and this directory is inside a git repository. .gitignore excludes *.sql here for that reason.

Getting something to test against

An empty schema boots but has no tenants, so there is nothing to sign in as. Two options:

  • Onboard a tenant through the console once it is pointed at localhost. That exercises the real path and is usually what you want.
  • Copy a few rows you actually need — a tenant, its locations, its app_users — with pg_dump --data-only --table=.... Check what you are copying: app_users.password is stored in clear.