20 repository-uri
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 este un ORM (Object Relational Mapper) type-safe pentru Go care prioritizează construcția interogărilor SQL-first și maparea rezultatelor. Funcționează ca un constructor de interogări SQL programabil, un manager de conexiuni la baza de date și un instrument pentru maparea tabelelor bazei de date la structuri Go. Proiectul se distinge printr-un sistem de suport SQL multi-dialect, permițând unui singur codebase să interacționeze cu diferite motoare de baze de date printr-o interfață consistentă. Include un instrument încorporat de observabilitate a bazei de date pentru interceptarea interogărilor, tracing distribuit și logare, precum și un instrument de migrare a schemei pentru versionarea modificărilor structurale. Biblioteca acoperă o gamă largă de operațiuni cu date, inclusiv procesarea în masă, upsert-uri, soft deletes și gestionarea datelor relaționale, cum ar fi asocierile polimorfice. Oferă capabilități pentru analize SQL avansate folosind expresii de tabel comune (CTE) și funcții de fereastră, alături de gestionarea tranzacțiilor atomice și pooling-ul conexiunilor. Gestionarea schemei este suportată printr-o interfață de linie de comandă pentru aplicarea scripturilor de migrare versionate.
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.
Specificația OCI Container Image este un format standardizat pentru imaginile de containere care asigură interoperabilitatea între diferite instrumente de build și runtime-uri. Servește drept standard de distribuție pentru structurarea blob-urilor de imagine și a manifestelor, oferind o modalitate consistentă de a transfera date între registre și clienți. Specificația utilizează un standard de stocare adresabilă prin conținut care identifică straturile de imagine și manifestele folosind digest-uri criptografice pentru a asigura integritatea datelor. Include o schemă de configurare bazată pe JSON pentru definirea metadatelor de execuție, cum ar fi entrypoint-urile și variabilele de mediu, și oferă un format de ambalare flexibil pentru a grupa artefacte non-container folosind tipuri media personalizate. Proiectul acoperă capabilități de nivel înalt, inclusiv distribuția imaginilor multi-platformă prin indici care mapează referințele către sisteme de operare și arhitecturi specifice. De asemenea, definește mecanismele pentru compoziția straturilor sistemului de fișiere, maparea resurselor prin manifeste și traducerea configurațiilor de imagine în specificații de runtime.
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 este un framework de procesare în fundal pentru aplicațiile Ruby care gestionează sarcinile asincrone prin utilizarea tabelelor de baze de date relaționale pentru persistența job-urilor. Prin stocarea sarcinilor direct în baza de date, sistemul asigură că crearea job-ului rămâne cuplată cu tranzacțiile aplicației, garantând că sarcinile sunt puse în coadă doar atunci când modificările de date asociate sunt confirmate cu succes. Framework-ul coordonează procesele worker concurente prin mecanisme de blocare la nivel de bază de date, care previn execuția redundantă și permit procesarea sarcinilor distribuite fără a fi nevoie de un broker de mesaje extern. Worker-ii operează prin interogarea bazei de date pentru job-urile în așteptare, suportând atât execuția imediată, cât și programarea întârziată bazată pe timestamp-uri viitoare. Sistemul oferă un mecanism pentru descărcarea operațiunilor consumatoare de timp din firul principal al aplicației către procese worker independente. Suportă configurații de handler personalizate, permițând dezvoltatorilor să definească logică specifică pentru sarcinile în fundal, menținând în același timp consistența prin stocarea relațională subiacentă.
Coordinates concurrent worker processes using database-level advisory locks to prevent redundant task execution.