14 repositorios
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.
This project is a comprehensive performance programming guide and reference for the Go language, focusing on runtime efficiency and memory optimization. It provides a collection of patterns and techniques designed to increase execution speed by reducing garbage collection overhead and optimizing memory usage. The resource distinguishes itself through detailed reference implementations for memory optimization, such as escape analysis, object pooling, and structure memory alignment. It offers specific strategies for reducing binary size and improving CPU cache efficiency through structure memor
Provides mechanisms for executing custom logic automatically before or after specific database operations.
Ormar es un mapeador objeto-relacional asíncrono para Python que integra la persistencia de bases de datos con la validación de datos. Funciona como un puente entre la gestión de bases de datos relacionales y las estructuras de datos a nivel de aplicación, permitiendo a los desarrolladores definir esquemas de base de datos que sirven simultáneamente como modelos de validación. El proyecto se distingue por utilizar clases de validación para hacer cumplir la integridad del esquema, asegurando que todos los registros persistidos se ajusten a los tipos y estructuras definidos. Admite asociaciones relacionales complejas, incluyendo relaciones uno a muchos y muchos a muchos, y proporciona hooks de ciclo de vida basados en eventos que activan lógica personalizada durante los cambios de estado de los registros para mantener la consistencia de los datos. La biblioteca cubre una amplia gama de capacidades de gestión de bases de datos, incluyendo la ejecución de consultas no bloqueantes y herramientas de migración de esquemas automatizadas. Utiliza un constructor de consultas de bajo nivel para traducir métodos de objeto en operaciones de base de datos estructuradas, mientras proporciona utilidades de línea de comandos para sincronizar versiones físicas de bases de datos con el código de la aplicación en diferentes entornos.
Triggers custom logic automatically before or after database operations to ensure data consistency.
Este proyecto es un kit de herramientas de base de datos para Go que proporciona mapeo de esquema a objeto, construcción de consultas fluida y generación de código automatizada. Funciona como un framework para el acceso a bases de datos con seguridad de tipos, permitiendo a los desarrolladores interactuar con bases de datos relacionales generando modelos e interfaces directamente a partir de esquemas de base de datos existentes. El kit de herramientas se distingue por un flujo de trabajo que analiza archivos SQL escritos a mano para generar funciones con seguridad de tipos, permitiendo la integración de SQL personalizado mientras se mantiene un mapeo de resultados consistente. Admite la personalización modular a través de una arquitectura basada en plugins y utiliza metadatos basados en comentarios SQL para controlar la estructura del código generado. Además, simplifica el desarrollo generando automáticamente fábricas de datos de prueba para agilizar la configuración de pruebas unitarias y de integración. Más allá de la generación principal, el kit de herramientas proporciona un conjunto integral para gestionar el ciclo de vida completo de las interacciones con la base de datos. Esto incluye la construcción de consultas fluida a través de múltiples dialectos, la sanitización de parámetros automatizada para prevenir la inyección SQL y el mapeo relacional que transforma resultados de consultas planos en estructuras de objetos anidadas. También cuenta con hooks de ciclo de vida para ejecutar lógica personalizada durante las operaciones de base de datos y admite la integración incremental, permitiendo la adopción parcial sin requerir una migración completa del sistema.
Triggers custom logic automatically before or after database operations to maintain state and business rules.