14 dépôts
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.
Ce projet est un guide complet de programmation de performance et une référence pour le langage Go, se concentrant sur l'efficacité du runtime et l'optimisation de la mémoire. Il fournit une collection de modèles et de techniques conçus pour augmenter la vitesse d'exécution en réduisant la surcharge du garbage collector et en optimisant l'utilisation de la mémoire. La ressource se distingue par des implémentations de référence détaillées pour l'optimisation mémoire, telles que l'analyse d'échappement (escape analysis), le pooling d'objets et l'alignement mémoire des structures. Elle propose des stratégies spécifiques pour réduire la taille des binaires et améliorer l'efficacité du cache CPU grâce à l'optimisation de la disposition mémoire des structures et à l'utilisation de placeholders sans allocation. Le projet couvre un large éventail de capacités d'ingénierie backend, incluant la gestion de la concurrence avec des pools de workers et des primitives de synchronisation, le routage RPC et HTTP haute performance, et des stratégies de mise en cache distribuée. Il inclut également des conseils sur l'observabilité via le profilage CPU et mémoire, ainsi que des modèles d'assurance qualité pour les tests unitaires fonctionnels et la génération d'objets mock. Le contenu est structuré comme une série de tutoriels, d'exemples architecturaux et de guides de benchmarking pour aider les développeurs à analyser et corriger les goulots d'étranglement de performance.
Provides mechanisms for executing custom logic automatically before or after specific database operations.
Ormar est un mappeur objet-relationnel (ORM) asynchrone pour Python qui intègre la persistance de base de données avec la validation de données. Il fonctionne comme un pont entre la gestion de base de données relationnelle et les structures de données au niveau de l'application, permettant aux développeurs de définir des schémas de base de données qui servent simultanément de modèles de validation. Le projet se distingue en utilisant des classes de validation pour appliquer l'intégrité du schéma, garantissant que tous les enregistrements persistés sont conformes aux types et structures définis. Il prend en charge les associations relationnelles complexes, y compris les relations un-à-plusieurs et plusieurs-à-plusieurs, et fournit des hooks de cycle de vie pilotés par les événements qui déclenchent une logique personnalisée lors des changements d'état des enregistrements pour maintenir la cohérence des données. La bibliothèque couvre un large éventail de capacités de gestion de base de données, y compris l'exécution de requêtes non bloquantes et des outils de migration de schéma automatisés. Elle utilise un générateur de requêtes de bas niveau pour traduire les méthodes d'objet en opérations de base de données structurées, tout en fournissant des utilitaires en ligne de commande pour synchroniser les versions physiques de la base de données avec le code de l'application à travers différents environnements.
Triggers custom logic automatically before or after database operations to ensure data consistency.
Ce projet est une boîte à outils de base de données pour Go qui fournit un mappage schéma-vers-objet, une construction de requête fluide et une génération de code automatisée. Il fonctionne comme un framework pour l'accès aux bases de données typé, permettant aux développeurs d'interagir avec des bases de données relationnelles en générant des modèles et des interfaces directement à partir des schémas de base de données existants. La boîte à outils se distingue par un flux de travail qui analyse les fichiers SQL écrits à la main pour générer des fonctions typées, permettant l'intégration de SQL personnalisé tout en maintenant un mappage de résultats cohérent. Elle prend en charge la personnalisation modulaire via une architecture basée sur des plugins et utilise des métadonnées basées sur des commentaires SQL pour contrôler la structure du code généré. De plus, elle simplifie le développement en générant automatiquement des usines de données de test pour rationaliser la configuration des tests unitaires et d'intégration. Au-delà de la génération de base, la boîte à outils fournit une suite complète pour gérer le cycle de vie complet des interactions avec la base de données. Cela inclut la construction de requêtes fluides à travers plusieurs dialectes, l'assainissement automatisé des paramètres pour prévenir l'injection SQL, et le mappage relationnel qui transforme les résultats de requête plats en structures d'objets imbriquées. Elle dispose également de hooks de cycle de vie pour exécuter une logique personnalisée pendant les opérations de base de données et prend en charge l'intégration incrémentale, permettant une adoption partielle sans nécessiter une migration complète du système.
Triggers custom logic automatically before or after database operations to maintain state and business rules.