14 repository-uri
Mechanisms for executing custom logic automatically before or after specific database operations.
Distinguishing note: Focuses on event-driven lifecycle triggers rather than general CRUD operations.
Explore 14 awesome GitHub repositories matching data & databases · Database Lifecycle Hooks. Refine with filters or upvote what's useful.
GORM is a developer-focused object-relational mapping library for Go that provides a comprehensive data persistence framework. It serves as a database access layer, allowing developers to map application structures to database tables and perform CRUD operations using a fluent, type-safe query builder instead of writing raw SQL. The library distinguishes itself through its association-aware persistence, which automatically tracks and synchronizes complex entity relationships during database operations. It utilizes a driver-agnostic interface to maintain consistent behavior across various stora
GORM allows user defined hooks to be implemented for BeforeSave, BeforeCreate, AfterSave, AfterCreate. These hook method will be called when creating a record, refer Hooks for details on the lifecycle func (u *Us
Vapor is a comprehensive server-side web framework designed for building scalable, high-performance applications and APIs in Swift. It provides a non-blocking, event-loop-based runtime that manages concurrent task processing, background job queues, and asynchronous request handling. The framework is built around a dependency injection container that manages the lifecycle and resolution of services, configurations, and database connections throughout the request pipeline. The framework distinguishes itself through a protocol-oriented design that emphasizes type safety across all layers of the
Hook into model lifecycle events such as creation, updates, or deletions to execute custom logic before or after database operations.
This project is a reactive, offline-first NoSQL database engine designed for JavaScript applications. It provides a robust framework for managing application state by synchronizing data across browsers, mobile devices, and server-side runtimes. By treating local storage as the primary source of truth, it enables applications to remain functional without network connectivity, automatically reconciling changes with remote backends once a connection is restored. The database distinguishes itself through a modular architecture that supports cross-environment synchronization and high-performance d
Executes custom logic automatically before or after specific database operations to enable specialized logging or diagnostic workflows.
Vanna is a Python framework designed to build conversational interfaces that translate natural language into executable database queries. It functions as an enterprise-grade toolkit that connects language models to relational databases, allowing users to retrieve information through conversational prompts rather than manual code. The system maintains context across interactions by utilizing vector databases to store historical query patterns and schema metadata. The framework distinguishes itself through a focus on security and schema-aware generation. It incorporates granular access control,
Provides lifecycle hooks to intercept database operations for logging, rate limiting, and security enforcement.
DataX is a distributed data integration framework and plugin-based ETL tool designed for synchronizing large datasets between heterogeneous sources and destinations. It functions as a JDBC data migration engine and offline synchronization tool, enabling the movement of data between relational databases, NoSQL stores, and object storage. The system utilizes a plugin-based connector architecture that decouples reader and writer logic, allowing it to map and transform data types across different storage engines using a standardized internal representation. This design supports heterogeneous data
Provides a bypass import mode that uses a direct path to the database to increase speed via parallel threads and optimized buffers.
This project is an educational framework designed to teach the fundamentals of building core distributed systems and web services from scratch in Go. It provides a collection of modular implementations that demonstrate how to construct essential infrastructure components, including web servers, remote procedure call systems, distributed caches, and database abstraction layers. The framework distinguishes itself by focusing on the internal mechanics of these systems rather than providing a high-level abstraction for production use. It covers the implementation of complex architectural patterns
The framework triggers custom logic automatically before or after database operations like insert, update, or delete by invoking methods defined on the data model.
dbt-core is a command-line framework for transforming data within a warehouse using modular SQL and version control. It functions as a data transformation engine that enables users to define data structures and business logic through declarative configuration files, which the system then compiles into executable code. By managing complex data dependencies through a directed acyclic graph, it ensures that transformation tasks execute in the correct order while maintaining a manifest-driven state to track lineage and execution history. The project distinguishes itself through an adapter-based d
Runs custom SQL commands before or after model execution by embedding templated strings that resolve to database operations.
SQLAlchemy is a comprehensive Python SQL toolkit and object-relational mapper that provides a full suite of tools for interacting with relational databases. It serves as a foundational layer for database connectivity, offering both a high-level object-oriented interface for data persistence and a programmatic SQL expression language for constructing complex, dialect-agnostic queries. The project distinguishes itself through its sophisticated unit of work persistence, which coordinates atomic transactions and tracks object state changes to minimize redundant database operations. It provides a
Allows custom logic to be injected into the query and persistence pipeline by triggering callbacks during specific database operations.
sqlboiler is a database-first ORM generator for Go that analyzes an existing database schema to produce strongly typed structures and query helpers. It functions as a schema-driven code generator, transforming database tables and relationships into executable Go source code. The project distinguishes itself through a type-safe query builder that uses chainable modifiers to construct SQL statements, eliminating the need for raw string concatenation. It utilizes customizable text templates to generate source code, allowing for the aliasing of schema entities and the creation of custom templates
Allows registration of custom functions that trigger automatically before or after database CRUD operations.
xorm is a relational mapper and object-relational mapping tool for Go. It translates Go structures into SQL queries and maps database rows back into native objects, providing a multi-dialect database driver that supports MySQL, PostgreSQL, SQLite, Oracle, SQL Server, and TiDB. The project features a read-write splitting manager that routes modification requests to a primary database and read requests to replicas. It includes a database schema synchronizer to automatically align table structures and indexes with application data models, as well as a fluent SQL query builder for constructing co
Triggers custom logic before or after database record operations using registered closures.
Sequel is a relational database toolkit for Ruby that provides object-relational mapping, a fluent SQL query builder, and schema migration capabilities. It maps database tables to Ruby classes with support for associations, validations, lifecycle hooks, and eager loading, offering a comprehensive ORM layer for building data-centric applications. Sequel distinguishes itself through a plugin-based extension architecture that allows composable customization of models, databases, and datasets without relying on deep inheritance hierarchies. It includes a thread-safe connection pool with support f
Skips all lifecycle hooks by performing insert, update, or delete directly on the underlying dataset.
Acest proiect este un ghid cuprinzător de programare pentru performanță și o referință pentru limbajul Go, concentrându-se pe eficiența runtime și optimizarea memoriei. Oferă o colecție de tipare și tehnici concepute pentru a crește viteza de execuție prin reducerea overhead-ului garbage collection-ului și optimizarea utilizării memoriei. Resursa se distinge prin implementări de referință detaliate pentru optimizarea memoriei, cum ar fi escape analysis, object pooling și alinierea memoriei structurilor. Oferă strategii specifice pentru reducerea dimensiunii binarului și îmbunătățirea eficienței cache-ului CPU prin optimizarea layout-ului memoriei structurilor și utilizarea placeholder-elor cu alocare zero. Proiectul acoperă o gamă largă de capabilități de inginerie backend, inclusiv gestionarea concurenței cu worker pools și primitive de sincronizare, RPC de înaltă performanță și rutare HTTP, precum și strategii de caching distribuit. Include, de asemenea, îndrumări privind observabilitatea prin profilarea CPU și a memoriei, precum și tipare de asigurare a calității pentru unit testing funcțional și generarea de obiecte mock. Conținutul este structurat ca o serie de tutoriale, exemple arhitecturale și ghiduri de benchmarking pentru a ajuta dezvoltatorii să analizeze și să remedieze blocajele de performanță.
Provides mechanisms for executing custom logic automatically before or after specific database operations.
Ormar este un ORM (Object-Relational Mapper) asincron pentru Python care integrează persistența bazei de date cu validarea datelor. Funcționează ca o punte între gestionarea bazelor de date relaționale și structurile de date la nivel de aplicație, permițând dezvoltatorilor să definească scheme de bază de date care servesc simultan ca modele de validare. Proiectul se distinge prin utilizarea claselor de validare pentru a impune integritatea schemei, asigurând că toate înregistrările persistate respectă tipurile și structurile definite. Suportă asocieri relaționale complexe, inclusiv relații one-to-many și many-to-many, și oferă hook-uri de ciclu de viață bazate pe evenimente care declanșează logică personalizată în timpul schimbărilor de stare ale înregistrărilor pentru a menține consistența datelor. Biblioteca acoperă o gamă largă de capabilități de gestionare a bazelor de date, inclusiv execuția de interogări non-blocking și instrumente de migrare automată a schemei. Utilizează un query builder de nivel scăzut pentru a traduce metodele obiectelor în operațiuni structurate de bază de date, oferind în același timp utilitare de linie de comandă pentru a sincroniza versiunile fizice ale bazei de date cu codul aplicației în diferite medii.
Triggers custom logic automatically before or after database operations to ensure data consistency.
Acest proiect este un toolkit de baze de date pentru Go care oferă mapare schemă-la-obiect, construcție fluentă a interogărilor și generare automată de cod. Funcționează ca un framework pentru accesul type-safe la baza de date, permițând dezvoltatorilor să interacționeze cu bazele de date relaționale prin generarea de modele și interfețe direct din schemele existente ale bazelor de date. Toolkit-ul se distinge printr-un flux de lucru care parsează fișiere SQL scrise manual pentru a genera funcții type-safe, permițând integrarea SQL-ului personalizat în timp ce se menține maparea consistentă a rezultatelor. Suportă personalizarea modulară printr-o arhitectură bazată pe plugin-uri și utilizează metadate bazate pe comentarii SQL pentru a controla structura codului generat. În plus, simplifică dezvoltarea prin generarea automată de fabrici de date de test pentru a eficientiza configurarea testelor unitare și de integrare. Dincolo de generarea de bază, toolkit-ul oferă o suită cuprinzătoare pentru gestionarea întregului ciclu de viață al interacțiunilor cu baza de date. Aceasta include construirea fluentă a interogărilor între mai multe dialecte, sanitizarea automată a parametrilor pentru a preveni injecția SQL și maparea relațională care transformă rezultatele interogărilor plate în structuri de obiecte imbricate. Dispune, de asemenea, de hook-uri de ciclu de viață pentru executarea logicii personalizate în timpul operațiunilor bazei de date și suportă integrarea incrementală, permițând adoptarea parțială fără a necesita o migrare completă a sistemului.
Triggers custom logic automatically before or after database operations to maintain state and business rules.