🏗️ Architecture

Seed Data Architecture

How Gauzy seeds initial data for demo, testing, and production environments.

Overview

Gauzy seeds the database on first launch with essential reference data:

  • Countries and currencies
  • Languages
  • Default roles and permissions
  • Feature definitions
  • Report categories
  • Organization settings

Seed Types

TypeWhen UsedDescription
DefaultAlwaysEssential reference data
DemoDemo/dev modeSample organizations, employees, tasks
RandomTestingRandom generated test data
ProductionFirst deployMinimal bootstrap data

Seed Configuration

Controlled via environment variables:

VariableValuesDefault
DEMOtrue / falsefalse
SEED_DEMO_DATAtrue / falsefalse

Seed Order

Seeds execute in dependency order:

Diagram; its source is available below
Diagram source
graph TB
    A[Countries & Currencies] --> B[Languages]
    B --> C[Roles & Permissions]
    C --> D[Features]
    D --> E[Default Tenant]
    E --> F[Default Organization]
    F --> G[Super Admin User]
    G --> H[Report Categories]
    H --> I[Demo Data if enabled]

Creating Custom Seeds

export class MySeed implements ISeedModule {
  async createDefault(dataSource: DataSource): Promise<void> {
    // Seed default data
  }

  async createRandom(
    dataSource: DataSource,
    tenants: ITenant[],
  ): Promise<void> {
    // Seed random/demo data
  }
}

Edit this page

Copyright © 2023-Present Ever Co. LTD.Docs by Sourcey