Skip to content
AyoKoding

Overview

Data tools manage how applications evolve and access their databases. This section covers two complementary families: schema migration tools that version-control your database structure over time, and data-access libraries (ORMs and query DSLs) that bridge your application's object or data model and relational databases. Each tool has a By Example tutorial in its language's idiom.

Schema Migration Tools

Migration tools apply ordered, reversible changes to your database schema so it evolves safely alongside your code:

  • Liquibase (Java) - Changelog-based migrations in SQL, XML, YAML, or JSON with rollback support.
  • Flyway (Kotlin) - Version-based, SQL-first migrations with a simple, convention-driven workflow.
  • Alembic (Python) - SQLAlchemy's migration engine with autogeneration and branching.
  • Goose (Go) - Lightweight migrations in SQL or Go functions.
  • Migratus (Clojure) - Data-driven SQL migrations for the JVM.
  • DbUp (F#) - Script-based .NET migrations that track applied changes.

Data Access & ORMs

Data-access tools map between application code and relational data:

  • Spring Data JPA (Java) - JPA/Hibernate persistence with the repository pattern and query-method generation.
  • EF Core (C#) - Entity Framework Core ORM with LINQ queries and built-in migrations.
  • Ecto (Elixir) - Functional database wrapper with composable queries and changeset validation.
  • SQLx (Rust) - Async, compile-time-checked SQL without a heavyweight ORM.
  • Effect SQL (TypeScript) - Type-safe SQL access built on the Effect runtime.

Learning Approach

Each tool provides a By Example tutorial with practical, annotated, runnable code:

  • Beginner - Core concepts, basic CRUD or first migrations, fundamentals
  • Intermediate - Complex queries, relationships, transactions, environments
  • Advanced - Performance optimization, custom queries, advanced patterns

Choosing Your Tool

  • Pick by ecosystem first - use the migration or data-access tool idiomatic to your language and framework.
  • Migration vs. ORM - migration tools manage schema structure over time; ORMs and query libraries manage runtime data access. Most production systems use both: a migration tool to evolve the schema and a data-access library to read and write rows.
  • SQL knowledge helps - all of these assume basic SQL. Complete the SQL tutorial first if you're new to relational databases.

Last updated December 22, 2025

Command Palette

Search for a command to run...