20 repositorios
Strategies for applying schema updates in production environments.
Distinguishing note: Focuses on the operational management of migrations.
Explore 20 awesome GitHub repositories matching data & databases · Migration Management. Refine with filters or upvote what's useful.
TypeORM is an object-relational mapper for TypeScript and JavaScript that bridges the gap between object-oriented application code and relational database tables. It provides a comprehensive data persistence layer that allows developers to define database entities using class decorators or configuration objects, enabling seamless interaction with data through object-oriented patterns. The project distinguishes itself through a flexible architecture that supports both the data mapper and repository patterns, alongside a fluent query builder that translates high-level method calls into platform
Applies schema updates in production environments using custom SQL scripts.
Wagtail is an open-source content management system built on the Django web framework. It provides a structured, tree-based approach to content modeling, allowing developers to define custom page types and reusable content components that are managed through a highly customizable administrative interface. The platform distinguishes itself through its flexible, block-based content composition system, which enables editors to assemble complex page layouts dynamically. It also offers robust support for multi-site and multi-lingual environments, allowing organizations to manage distinct websites
Prevents concurrent editing by allowing users to lock specific snippet instances, ensuring content integrity during collaborative work.
This project is a command-line utility designed to manage database schema versioning and automate incremental schema updates. It functions as a version control system for database structures, ensuring consistency across environments by tracking applied migrations in a dedicated metadata table and executing scripts in a sequential, reliable manner. The tool distinguishes itself through a driver-based abstraction layer that supports a wide range of database engines, including various SQL and distributed cloud databases. It provides robust concurrency control through advisory locking, which prev
Prevents conflicting schema changes during simultaneous deployment attempts by utilizing advisory locks.
Entity Framework Core is an object-relational mapper that enables developers to interact with database systems using strongly-typed code. It serves as a comprehensive data access framework, providing a unified interface for mapping application objects to relational and non-relational database schemas while managing the lifecycle of data operations through a central context. The project distinguishes itself through a provider-based architecture that decouples core data access logic from specific database engines, allowing for consistent interaction across diverse storage systems. It features a
Identifies conflicts in model snapshots when multiple developers create migrations on separate branches, requiring manual reconciliation.
Memcached is a high-performance, distributed, in-memory key-value storage and request routing engine. It functions as a volatile data store designed to accelerate dynamic applications by caching objects in RAM, thereby reducing backend database load and providing sub-millisecond response times. The system utilizes a specialized architecture that organizes memory into fixed-size slabs to minimize fragmentation and maximize throughput for high-concurrency workloads. The project distinguishes itself through a multi-threaded, lock-friendly design that scales across CPU cores and supports complex
Implements conditional key creation to prevent concurrent regeneration of expensive cache items.
Kysely is a TypeScript SQL query builder that provides a type-safe interface for constructing and executing database queries. It functions as a database layer that ensures schema compliance and prevents runtime errors by using a fluent interface and a programmable way to build complex SQL statements. The project features a type-safe database layer capable of inferring return types and aliases from SQL selections and joins. It also includes a SQL migration manager to track and apply schema changes across different environments to keep database versions synchronized. The toolkit covers relatio
Includes a migration manager to track and apply schema changes across different environments.
SponsorBlock is a community-driven platform designed to automate the skipping of specific video segments, such as sponsorships and intros, during playback. It functions as a crowdsourced database where users submit and categorize video timestamps, which are then retrieved by client-side extensions to intercept and skip unwanted content. The system distinguishes itself through a reputation-weighted consensus model, where community voting and administrative moderation ensure the accuracy of submitted data. To protect user privacy, the platform utilizes hash-based retrieval, allowing clients to
Implements content locking mechanisms to prevent unauthorized changes to video segment metadata and maintain data integrity.
bbolt is an ACID-compliant embedded key-value store for Go applications. It persists all data in a single memory-mapped file on disk, organizing information using B+ trees to facilitate sorted key iteration and efficient range queries. The project distinguishes itself through a hierarchical data organization model, allowing buckets to be nested within other buckets to create a tree-like structure. It employs a single-writer, multi-reader locking mechanism and copy-on-write transactions to ensure serializable isolation and data integrity. The system includes comprehensive data management capa
Provides an advisory locking mechanism to prevent multiple processes from concurrently corrupting the storage file.
pg is a PostgreSQL object-relational mapper (ORM) for Go that maps Go structs to database tables and provides a fluent query builder for constructing SQL statements programmatically. At its core, it automatically generates CREATE TABLE statements from Go struct definitions using struct tags and naming conventions, and builds queries through method chaining with placeholder-based parameter binding to prevent SQL injection. The library distinguishes itself through relation-aware join generation that automatically constructs JOIN clauses for has-one, has-many, many-to-many, and polymorphic assoc
Applies database schema changes in a safe order using advisory locks to prevent downtime during concurrent migrations.
Tortoise ORM is an asynchronous object-relational mapper for Python that mirrors Django's model and queryset API while running on asyncio. It defines database tables as Python classes with typed fields and supports foreign key, many-to-many, and one-to-one relations, providing a chainable query API for filtering, annotating, grouping, and prefetching related objects without blocking the event loop. The ORM includes a built-in migration engine that detects model changes, generates migration files, and applies or reverts schema changes through a command-line tool. It connects to PostgreSQL, MyS
Detects model changes, generates migration files, and applies them to keep the schema in sync.
Bun es un mapeador objeto-relacional (ORM) con seguridad de tipos para Go que prioriza la construcción de consultas SQL primero y el mapeo de resultados. Funciona como un constructor de consultas SQL programable, un gestor de conexiones de base de datos y una herramienta para mapear tablas de bases de datos a structs de Go. El proyecto se distingue por un sistema de soporte SQL multi-dialecto, permitiendo que una única base de código interactúe con diferentes motores de base de datos a través de una interfaz consistente. Incluye una herramienta de observabilidad de base de datos incorporada para la interceptación de consultas, rastreo distribuido y registro, así como una herramienta de migración de esquemas para el versionado de cambios estructurales. La biblioteca cubre una amplia gama de operaciones de datos, incluyendo procesamiento por lotes, upserts, eliminaciones lógicas (soft deletes) y la gestión de datos relacionales como asociaciones polimórficas. Proporciona capacidades para análisis SQL avanzados utilizando expresiones de tabla comunes (CTE) y funciones de ventana, junto con la gestión de transacciones atómicas y agrupación de conexiones (connection pooling). La gestión de esquemas es compatible a través de una interfaz de línea de comandos para aplicar scripts de migración versionados.
Implements cooperative database-level advisory locks to prevent concurrent process conflicts.
This is an educational relational database engine used in Carnegie Mellon University's database systems course. Students learn internals by implementing core components of a working database, including storage, indexing, concurrency control, and crash recovery. The system covers key database architecture: a B+ tree index for fast key-based lookups and range scans, a disk-oriented buffer pool that caches pages from disk, an iterator-based query execution model that composes physical operators, page-based storage for records, two-phase locking for coordinating concurrent transactions, and write
Coordinates concurrent transactions by acquiring locks in a growing phase and releasing in a shrinking phase.
BilibiliSponsorBlock is a content filtering system and API server designed to identify and remove sponsored segments and filler content from Bilibili video playback. It utilizes a crowdsourced segment database where users contribute and vote on timestamps to create a shared repository of skippable video sections. The project features a video metadata synchronizer that links equivalent videos across different platforms, allowing skip markers and timing data to be shared between mirrored content. It implements a reputation-based permission system to manage submissions and edits, alongside a pri
Prevents modification of specific segment types through a locking mechanism that requires administrative overrides.
The OCI Container Image Specification is a standardized format for container images that ensures interoperability between different build tools and runtimes. It serves as a distribution standard for structuring image blobs and manifests, providing a consistent way to transfer data between registries and clients. The specification employs a content-addressable storage standard that identifies image layers and manifests using cryptographic digests to ensure data integrity. It includes a JSON-based configuration schema for defining execution metadata, such as entrypoints and environment variable
Ensures that image layers and manifests remain unchanged across registries to maintain data integrity.
Vikunja is a self-hosted task management platform designed for organizing personal and team projects. It provides a centralized system for managing tasks using multiple visualization formats, including Kanban boards, Gantt charts, and tables. The project distinguishes itself through extensive external connectivity, offering a REST API, OpenAPI specifications, and CalDAV synchronization for external calendar integration. It supports sophisticated identity federation via LDAP, OpenID Connect, and Single Sign-On, alongside event-driven automation using webhooks. The platform covers a broad rang
Manages the application of structural schema updates using timestamped migration files.
pgdog is a PostgreSQL sharding proxy, distributed SQL router, and connection pooler. It is designed to enable horizontal data distribution by splitting tables and indices across multiple independent servers to scale storage and processing capacity. The project distinguishes itself through online resharding capabilities, using logical replication to move data between shards without application downtime. It supports multiple routing strategies, including hash, list, and range-based query routing, and manages distributed atomic transactions using a two-phase commit process to ensure consistency
Ties server connections to specific clients to ensure database advisory locks are maintained during connection reuse.
OpenRewrite is an automated refactoring engine and source-to-source migration framework. It uses a lossless semantic tree parser to represent source code as type-aware trees that preserve original whitespace and formatting, enabling precise and deterministic modifications. The project utilizes a declarative refactoring pipeline where sequences of transformations are defined in YAML to resolve breaking changes and technical debt. It features type-aware pattern matching and cross-language model mapping to apply similar refactoring patterns across different programming languages. The framework
Adds necessary imports and explanatory comments to transfer manager transformations that are not fully supported.
pg-boss is a background task scheduler and distributed task queue that uses PostgreSQL as a reliable message broker for asynchronous job processing. It provides a system for distributing work across multiple application instances, ensuring exactly-once delivery through atomic database transactions. The project includes a cron job scheduler for automating recurring tasks and a PostgreSQL pub-sub system for fan-out event distribution. It also features a web-based management dashboard for monitoring queue statistics and controlling job lifecycles, including manual retries and cancellations. Cap
Utilizes database-level locking to maintain distributed locks across multiple application instances.
Solid Queue is a background job processing system for Ruby on Rails applications that utilizes a relational database as its primary storage backend. By integrating directly with the framework's native job interface, it ensures that task queues and execution states are persisted within the database, providing reliability and recoverability across system failures. The system distinguishes itself by embedding worker processes directly into the web server environment, which simplifies deployment and consolidates monitoring within existing infrastructure. It coordinates distributed worker processe
Coordinates distributed worker job claims using database-level advisory locks to prevent race conditions.
Queue Classic es un framework de procesamiento en segundo plano para aplicaciones Ruby que gestiona tareas asíncronas utilizando tablas de bases de datos relacionales para la persistencia de trabajos. Al almacenar tareas directamente dentro de la base de datos, el sistema asegura que la creación de trabajos permanezca acoplada con las transacciones de la aplicación, garantizando que las tareas solo se pongan en cola cuando los cambios de datos asociados se confirmen (commit) con éxito. El framework coordina procesos de trabajo concurrentes a través de mecanismos de bloqueo a nivel de base de datos, que evitan la ejecución redundante y permiten el procesamiento de tareas distribuidas sin necesidad de un broker de mensajes externo. Los trabajadores operan sondeando la base de datos en busca de trabajos pendientes, admitiendo tanto la ejecución inmediata como la programación retrasada basada en marcas de tiempo futuras. El sistema proporciona un mecanismo para descargar operaciones que consumen mucho tiempo del hilo principal de la aplicación a procesos de trabajo independientes. Admite configuraciones de manejadores personalizados, permitiendo a los desarrolladores definir lógica específica para tareas en segundo plano mientras mantienen la consistencia a través del almacenamiento relacional subyacente.
Coordinates concurrent worker processes using database-level advisory locks to prevent redundant task execution.