weavejester/ragtime
weavejester/ragtime has 642 GitHub stars and 83 forks. GitHot measured 0 stars in 24 hours and 0 in 7 days. Last checked 2026-11-11 19:16 UTC. Last push 2025-09-23.
Comment ces chiffres sont mesurés
Database-independent migration library
Progression mesurée des étoiles
- in 24h
- 0
- in 7 days
- 0
- in 15 days
- Historique en cours
- in 1 month
- Historique en cours
Variations nettes sur des périodes qui se chevauchent, pas des totaux quotidiens. Les mesures absentes restent vides. Les étoiles indiquent l’intérêt, pas la qualité.
README.md
OriginalRagtime 
Ragtime is a Clojure library for migrating structured data in a way that's database independent. It defines a common interface for expressing migrations, much like Ring defines a common interface for expressing web applications.
Installation
Add the following dependency to your deps.edn file:
dev.weavejester/ragtime {:mvn/version "0.12.1"}
Or to your Leiningen project file:
[dev.weavejester/ragtime "0.12.1"]
Overview
Ragtime needs a minimum of three things to work:
- A migratable data store
- An ordered sequence of migrations
- A strategy on how to deal with conflicts
A data store is an implementation of the DataStore protocol, and
tells Ragtime how to record which migrations are applied to an
arbitrary store of data, such as a database. It has three methods:
add-migration-id- add a new migration ID to the storeremove-migration-id- remove a migration ID from the storeapplied-migration-ids- return an ordered list of applied IDS
Migrations are implementations of the Migration protocol, which also
has three methods:
id- returns a unique ID for the migrationrun-up!- applies the migration to a databaserun-down!- rolls back the migration in a database
Ragtime comes with implementations of these protocols for Cloure's java.jdbc library and Sean Corfield's next.jdbc library, therefore supporting SQL migrations out of the box.
The migration store for SQL database is a special migrations table,
and the migrations can be specified as either .sql files, or .edn
files. For more information, see the documentation below.
Some Ragtime functions require one more element: a migration index. This
should satisfy the MigrationIndex protocol, which has three methods:
index-migration- index a migration by keydeindex-migration- remove a migration from the indexget-indexed-migration- get an indexed migration by key
This is used for storing migration information. By default this protocol is satisfied by an ordinary Clojure map, but could be attached to a persistence layer.
Documentation
- Getting Started
- Upgrading from 0.3.x
- Upgrading from 0.4.x
- Concepts
- SQL Migrations
- Leiningen Integration
- API docs
- Third-party Libraries
License
Copyright © 2024 James Reeves
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version
Explorer des projets similaires
Asabeneh/30-Days-Of-Python
Le défi de programmation 30 Days of Python est un guide pas à pas pour apprendre le langage de programmation Python en 30 jours. Ce défi peut prendre plus de 100 jours. Avancez à votre rythme. Ces vidéos peuvent aussi vous aider : https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,560 étoilesgrafana/grafana
Plateforme ouverte et composable d’observabilité et de visualisation de données. Visualise les métriques, les journaux et les traces issus de plusieurs sources, comme Prometheus, Loki, Elasticsearch, InfluxDB, Postgres et bien d’autres.
77,830 étoilesredis/redis
Pour les développeurs qui créent des applications en temps réel pilotées par les données, Redis est le cache, le serveur de structures de données et le moteur de requêtes documentaires et vectorielles préféré, le plus rapide et le plus riche en fonctionnalités.
77,395 étoilesapache/superset
Apache Superset est une plateforme de visualisation et d'exploration de données.
75,473 étoiles