---
title: Configuration Management
description: Versioning application and config data so changes are reviewable and instantly revertible when a bad config ships.
---

## Problem

* Is your configuration too big and complex for files? 
* Is your configuration more like code than configuration? 
* Does configuration have a large production impact? 
* Are configuration changes hard to review? 
* Are multiple configuration changes hard to merge together when it’s time to ship?
* Are you building a game with lots of assets and configuration?

## Doltgres solves this by…

Configuration is generally structured and managed as large text files. YAML and JSON formatted configuration is very popular. These formats are unordered, meaning standard version control solutions like Git cannot reliably produce [diffs](/concepts/git/diff) and [merges](/concepts/git/merge). Moreover, configuration can get quite large, running up against the file size limits of tools like Git.

Some configuration is better modeled as [tables](/concepts/sql/table). Tables by design are unordered. Tables can contain even JSON columns for parts of your configuration you want to remain loosely typed. 

Doltgres is an ideal solution for version controlling tabular configuration. Doltgres allows for all the version control features you came to know and love when your data was small like [branches](/concepts/git/branch), [diffs](/concepts/git/diff), and human review of changes before they [merge](/concepts/git/merge). 

This use case is particularly popular in video games where much of the game functionality is modeled as configuration. Store the likelihood of an item drop or the strength of a particular enemy in Doltgres tables. Review and manage changes. When the configuration is ready, use a build process to create whatever format your game needs.

## Doltgres replaces...

## Files in Git

Most large configuration files are stored and versioned in Git. If the files get too large they are store in cloud storage and linked to Git using [git-lfs](https://git-lfs.com/). If the files are stored in git-lfs, you lose the ability to diff the contents of the files. Doltgres improves the experience by adding query capabilities and large fine-grained diffs to the data stored in configuration files. The diff and merge experience will be greatly improved in Doltgres for this type of data.

## Companies Doing This

These companies use Dolt, Doltgres's MySQL-compatible cousin, for configuration management:

* [Scorewarrior](https://scorewarrior.com/)
* [PhanXgames](https://www.phanxgames.com/)

## Case Studies

Let us know if you would like us to feature your use of Doltgres for configuration management here.

## Other Related Articles

* [Version control for Video Game Development using Dolt](https://www.dolthub.com/blog/?q=game)
* [Your config file should be a database](https://www.dolthub.com/blog/2023-05-15-your-config-file-should-be-a-database/)
