Database

Software used
We are using PostgreSQL as our Database for persisting data and Sequalize ORM to simplify the interaction with the database in our Typescript project.
Sequalize Migrations & Seeders
These utility files are named and sorted by date when they were created to ensure consistent and deterministic deployment between multiple different computers or installations.
Migrations
Sequalize allows us to easily create migrations located in /database/migrations
folder, which allow us to easily recreate the db on new machines, as well to alter the db in the future consistently between multiple machines or team members.
Seeders
The seeders allow us to pre-fill the data of our tables such as User profiles, Admin profiles, Pallets etc.
Sequalize being in typescript, we can re-use our business logic configuration files and generate table entries dynamically during the setup without repeating our code.
Tables
Sequalize
These are the tables that sequalizes internally uses for it's own metadata:
sequalize_meta
sequalize_seed
Session
Tables we use for management of our session cookie
session
Users
Tables for managing users and ther permissions
users
Pallets
Tables that hold all of the Pallet related data, normalised to 2NF ensure zero data redudancy
pallets: Holds all the pallet metadata
pallet-dependency: Tracks relationships between module dependency of the pallets
pallet-category: Simple table to track which categories a pallet belongs to
pallet-author: Simple table to track Authors of a pallet (There can be multiple)
Templates
Tables that hold of the Template related data, normalised to 1NF
templates: Holds all the template metadata
template-dependency: Tracks which pallets a template uses
Last updated