LogoLogo
DoltHubBlogDiscordGitHubDolt
  • Introduction
    • What Is Dolt?
    • Installation
      • Linux
      • Windows
      • Mac
      • Build from Source
      • Application Server
      • Docker
      • Upgrading
    • Getting Started
      • Version Controlled Database
      • Git For Data
      • Versioned MySQL Replica
    • Use Cases
      • Data Sharing
      • Data and Model Quality Control
      • Manual Data Curation
      • Version Control for your Application
      • Versioned MySQL Replica
      • Audit
      • Configuration Management
      • Offline First
  • Concepts
    • Dolt
      • Git
        • Commits
        • Log
        • Diff
        • Branch
        • Merge
        • Conflicts
        • Remotes
        • Working Set
      • SQL
        • Databases
        • Schema
        • Tables
        • Primary Keys
        • Types
        • Indexes
        • Views
        • Constraints
        • Triggers
        • Procedures
        • Users/Grants
        • Transactions
        • System Variables
      • RDBMS
        • Server
        • Backups
        • Replication
    • DoltHub/DoltLab
      • Permissions
      • Pull Requests
      • Issues
      • Forks
  • SQL Reference
    • Running the Server
      • Configuration
      • Access Management
      • Branch Permissions
      • Backups
      • Garbage Collection
      • Metrics
      • Replication
      • Troubleshooting
    • Version Control Features
      • Using Branches
      • Merges
      • Querying History
      • Using Remotes
      • Procedures
      • Functions
      • System Tables
      • System Variables
      • Saved Queries
    • SQL Language Support
      • Data Description
      • Expressions, Functions, Operators
      • Supported Statements
      • MySQL Information Schema
      • Collations and Character Sets
      • System Variables
      • Miscellaneous
    • Supported Clients
      • Programmatic
      • SQL Editors
    • Benchmarks and Metrics
      • Correctness
      • Latency
      • Import
  • CLI Reference
    • Commands
    • Git Comparison
  • Architecture
    • Overview
    • Storage Engine
      • Commit Graph
      • Prolly Trees
      • Block Store
    • SQL
      • Go MySQL Server
      • Vitess
  • Guides
    • Cheat Sheet
    • Contributing
      • dolt
      • go-mysql-server
    • MySQL to Dolt Replication
    • Importing Data
    • Integrations
  • Other
    • FAQ
    • Roadmap
    • Versioning
  • Products
    • Hosted Dolt
      • Getting Started
      • Notable Features
      • SQL Workbench
      • Cloning a Hosted Database
      • Using DoltHub as a Remote
      • Infrastructure
    • DoltHub
      • Data Sharing
      • API
        • Authentication
        • SQL
        • CSV
        • Database
        • Hooks
      • Continuous Integration
        • Getting Started
        • Workflow Reference
      • Transform File Uploads
      • Workspaces
    • DoltLab
    • Dolt Workbench
    • DoltgreSQL
Powered by GitBook
On this page
  • Problem
  • Dolt solves this by…
  • Dolt replaces
  • Soft Deletes
  • Slowly Changing Dimension
  • Companies Doing This
  • Case Studies
  • Other Related Articles

Was this helpful?

Edit on GitHub
Export as PDF
  1. Introduction
  2. Use Cases

Version Control for your Application

PreviousManual Data CurationNextVersioned MySQL Replica

Last updated 1 year ago

Was this helpful?

Problem

  • Do your customers want branches and merges in your application?

  • Do your customers want to review changes in your application before they go live?

  • Do you want to add a pull request workflow to your application?

  • Do you want to expose audit log functionality in your application?

  • Do you want to expose rollback functionality in your application?

Dolt solves this by…

If you have an application that would benefit from , , , , and human review of changes, you can use Dolt to power that application. Dolt gives you branch, diff, and merge at the database layer.

Programmatically access git functionality via , , and . Programmatic control of Git operations combined with the ability to use creates the ideal foundation to add version control to your application.

Dolt ships with standard tools like and . Run Dolt with a hot standby and failover just like MySQL or Postgres.

is a hosted version of Dolt that works like AWS RDS. Let us worry about operating Dolt in the cloud. Write your application against a cloud endpoint.

In the past applications that needed these features required or . These approaches are cumbersome and do not support merge. Dolt gives application the full development power of Git.

Dolt replaces

Soft Deletes

Slowly Changing Dimension

Companies Doing This

Case Studies

Other Related Articles

A common technique to version your database is to use . When your application would make an update or a delete, you application instead makes an insert and marks the old row invalid. Dolt obviates the need for this technique. You can keep your existing database schema and Dolt ensures every write is non-destructive. Queries against soft deleted rows become Dolt history queries against .

A more advanced technique for versioning databases is . Slowly Changing Dimension is similar to soft deletes. Additional database columns are added to tables to manage versioning. Dolt is slowly changing dimension on every table by default. Queries involving the slowly changing dimension become Dolt history queries against . Moreover, complicated processes can happen at the database layer. Merges must handled by custom code at the application layer with slowly changing dimension.

branches
merges
diffs
logs
procedures
system tables
functions
standard SQL
RDBMS
replication
backups
Hosted Dolt
slowly changing dimension
soft deletes
soft deletes
system tables
slowly changing dimension
system tables
merge
Threekit
Network To Code
FJA
Idearoom
Nautobot by Network To Code
Turbine
Django and Dolt
Django and Dolt Part II
Using SQLAlchemy for Dolt Time Travel
How we built the Hosted Dolt Workbench
So you want Database Version Control?
So you want Soft Deletes
Getting Started: Dolt and SQLAlchemy
Using SQLAlchemy for Dolt Time Travel