Skip to content

Latest commit

 

History

History
111 lines (70 loc) · 7.8 KB

File metadata and controls

111 lines (70 loc) · 7.8 KB
graph LR
    ORM_Core["ORM Core"]
    Query_Builder["Query Builder"]
    Database_Adapters["Database Adapters"]
    Migration_System["Migration System"]
    Configuration_Registry["Configuration & Registry"]
    CLI_Project_Management["CLI & Project Management"]
    Schema_Management["Schema Management"]
    ORM_Core -- "defines models for" --> Query_Builder
    Query_Builder -- "generates SQL for" --> Database_Adapters
    Database_Adapters -- "executes queries and returns results to" --> Query_Builder
    Database_Adapters -- "executes queries and returns results to" --> ORM_Core
    ORM_Core -- "provides schema definitions to" --> Migration_System
    Migration_System -- "applies schema changes via" --> Database_Adapters
    CLI_Project_Management -- "dispatches commands to" --> Migration_System
    CLI_Project_Management -- "dispatches commands to" --> Schema_Management
    CLI_Project_Management -- "interacts with" --> Configuration_Registry
    Configuration_Registry -- "provides settings to" --> ORM_Core
    Configuration_Registry -- "provides settings to" --> Query_Builder
    Configuration_Registry -- "provides settings to" --> Database_Adapters
    Schema_Management -- "queries" --> Database_Adapters
    Schema_Management -- "generates models for" --> ORM_Core
    click Query_Builder href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/piccolo/Query_Builder.md" "Details"
    click Database_Adapters href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/piccolo/Database_Adapters.md" "Details"
    click Migration_System href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/piccolo/Migration_System.md" "Details"
    click CLI_Project_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/piccolo/CLI_Project_Management.md" "Details"
    click Schema_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/piccolo/Schema_Management.md" "Details"
Loading

CodeBoardingDemoContact

Details

Piccolo's architecture is designed around a clear separation of concerns, facilitating robust ORM functionalities and database interactions. The ORM Core serves as the central definition point for data models, which are then utilized by the Query Builder to construct SQL queries. These queries are executed against various databases through the Database Adapters, ensuring broad compatibility. Schema evolution is managed by the Migration System, which interacts with the ORM Core for schema definitions and the Database Adapters for applying changes. The Configuration & Registry component provides essential settings and discovers registered applications, tables, and database engines, influencing the behavior of the ORM Core, Query Builder, and Database Adapters. Schema Management tools introspect and generate models, relying on Database Adapters for schema information and feeding generated models back to the ORM Core. Finally, the CLI & Project Management component acts as the primary user interface, orchestrating operations across the Migration System, Schema Management, and interacting with the Configuration & Registry for project-wide settings.

ORM Core

The foundational layer for defining database models (tables and columns) and providing an object-oriented interface for data manipulation.

Related Classes/Methods:

Query Builder [Expand]

Responsible for constructing and managing SQL queries based on the ORM models, offering a fluent API for complex data retrieval and manipulation.

Related Classes/Methods:

Database Adapters [Expand]

Provides a standardized interface for connecting to and interacting with various relational database systems (e.g., PostgreSQL, SQLite, CockroachDB).

Related Classes/Methods:

Migration System [Expand]

Manages the evolution of the database schema, enabling version-controlled changes and ensuring schema consistency across environments.

Related Classes/Methods:

Configuration & Registry

Centralized management of Piccolo application settings, including discovery of registered applications, tables, and database engines.

Related Classes/Methods:

CLI & Project Management [Expand]

The main command-line interface for interacting with Piccolo, providing tools for project initialization, application scaffolding, and dispatching commands to other components.

Related Classes/Methods:

Schema Management [Expand]

Tools for introspecting existing database schemas, generating Piccolo models from them, and visualizing schema relationships.

Related Classes/Methods: