Files
zkldi_Tachi/old-docs/docs/codebase/infrastructure/database-seeds.md
T
zk e363bd2532 docs: migrate from mkdocs to mdbook (#1558)
* docs: migrate from mkdocs to mdbook

- Rename old mkdocs docs/ to old-docs/ for reference
- Set up new docs/ with mdbook (book.toml + src/ tree)
- Mirror full nav structure from mkdocs.yml into SUMMARY.md
- Add Justfile-docs with docs-serve, docs-build, docs-check, docs-install recipes
- Import Justfile-docs from root Justfile
- Rewrite .github/workflows/docs.yml: build step uses taiki-e/install-action
  to install mdbook, split into separate build + deploy jobs, PR builds
  run the check step too

* ci(docs): pin actions to SHAs, install mdbook via release binary

* ci(docs): install mdbook from apt instead of curling a release binary

* dev: replace mkdocs python stack with mdbook in dev image

* ci(docs): apt only works on Debian; restore release binary install for Ubuntu CI

* docs: fix duplicate file entries in SUMMARY.md

* docs: remove docs-install recipe

* docs: remove site-url from book.toml to fix asset loading

* dev: install mdbook from upstream release binary, not Debian apt

The Debian package (0.4.x+ds) strips bundled font assets, leaving the
built site without fonts/fonts.css. Use the upstream tarball (same as CI)
so the theme is complete. Handles x86_64 and aarch64.

* docs: vendor mdbook tarballs in dev/mdbook/, install from there

Dockerfile.dev uses COPY + tar to install the right arch at build time.
CI extracts the x86_64 tarball directly from the checkout.
No network access required for either — and no stripped-fonts Debian package.

* fix: unwritten
2026-05-22 20:43:07 +01:00

1.2 KiB

Database Seeds

Tachi tracks the contents of its songs and charts in something called the Database Seeds.

The databases in question aren't (normally) altered by the server code. We essentially overload git and its CI tools to version control parts of our database.

What's in the seeds?

The seeds contain all the SongDocuments and ChartDocuments for all of the games supported by Tachi.

They also include all Folder Documents, Table Documents and BMS Course Documents.

Synchronisation

When pushes are made to main, our running production servers will automatically update to that new bit of data.

Why bother?

Making all of this data public and easily accessible is one of the best ways to help out other people making rhythm game tools.

The database seeds are an invaluable resource for other programmers who don't want to scrape data themselves.

It's also very useful for Tachi. Having charts on a public git repo allows anyone to trivially PR things they know to be wrong. This level of openness to contribution is great, and has resulted in a lot of good work being done by the community.