Migration
A migration is a process of transferring or transforming data, software, or system state from a source form or environment to a target form or environment.
ASP.NET Core in Action, 3e
A database migration is a versioned change that updates a database schema to match changes in an application's data model.
- How it is used
- Keeps an EF Core database schema aligned with an evolving application data model.
- How deep it goes
- Works through initial and subsequent migrations, generated files, and application, while treating production deployment choices as an overview.
- Examples
- Uses an initial schema, added recipe properties, and Identity user entities as migration cases.
- What you can do after
- Operate/configure it with `dotnet ef migrations add` and `dotnet ef database update` to record and apply schema changes.
Django in Action
A Django migration is a versioned description of database schema changes derived from changes to application models.
- How it is used
- Synchronizes Django model changes with database tables through generated, versioned migration scripts.
- How deep it goes
- Explains migration-file structure, dependencies, schema operations, defaults for existing rows, reversibility, and custom `RunPython` work.
- Examples
- Uses a Promoter model, an added `famous_for` field, a default-value prompt, and address-field conversion exercises.
- What you can do after
- Operate/configure it by generating and applying migrations, supplying defaults for existing rows, and creating custom data migrations.
Machine Learning System Design
A data integration process that extracts data from sources, transforms it, and loads the result into a destination.
- How it is used
- Makes source data available as datasets for ML training while preserving access to the same sources at runtime.
- How deep it goes
- Defines ETL and works through design questions and cases, but defers detailed storage and processing-tool engineering.
- Examples
- Uses API JSON converted to CSV or Parquet, daily retail transaction aggregates, and photo-search interaction datasets.
- What you can do after
- Operate/configure it by identifying sources, choosing storage, planning quality checks, and verifying that jobs deliver usable data.
Read how Machine Learning System Design explains migration →
Data Pipelines with Apache Airflow, Second Edition
Extract, transform, load is a data-integration process that retrieves data from a source, transforms it, and loads the result into a destination.
- How it is used
- Coordinates periodic movement and transformation of data between source and destination systems for dashboards or analysis.
- How deep it goes
- Explains task ordering, source inspection, and scheduling implications, but does not specify a universal transformation or loading implementation.
- Examples
- Uses a weather dashboard, hourly Wikimedia page-view dumps, production-database exports, and a New York City transportation pipeline.
- What you can do after
- Build it from scratch as an ordered Airflow pipeline after inspecting source data and planning how often to load it.
Read how Data Pipelines with Apache Airflow, Second Edition explains migration →
Generative AI in Action
ETL is a data-processing pattern that extracts data from sources, transforms it, and loads it into a destination system.
- How it is used
- Positions ETL as preparation of enterprise source data for retrieval-augmented generation.
- How deep it goes
- Outlines source profiling, extraction, preprocessing, indexing, and storage selection without providing an executable ETL implementation.
- Examples
- Names CRM and ERP systems as sources and Azure AI Search as an indexing option, without a worked pipeline.
- What you can do after
- Evaluate/understand how to plan a retriever pipeline around source structure, preprocessing, retrieval needs, and data refresh.
Delivering Machine Learning Projects: From design to deployment
Data migration is the transfer of data between storage systems, formats, schemas, or operational environments.
- How it is used
- Positions cloud data migration as a delivery dependency for production data and new applications.
- How deep it goes
- Works through an interim provisioning decision but leaves the migration project's data feeds and dependencies to that project.
- Examples
- Uses a week-seven migration deadline, a one-time opdis2 copy, and a dev/test/prod provisioning diagram.
- What you can do after
- Evaluate/understand it by identifying a migration deadline's delivery risk and planning approved interim development data.
Read how Delivering Machine Learning Projects: From design to deployment explains migration →
Unit Testing Principles, Practices, and Patterns
A database migration is an explicit, versioned change that transitions a database schema or its data to a subsequent state.
- How it is used
- Supports controlled database delivery and testable schema changes by recording each transition explicitly.
- How deep it goes
- Explains source control, version transitions, reversibility, and trade-offs against state-based delivery, but not migration tooling internals.
- Examples
- Uses a numbered CreateUserTable migration with Up and Down operations, plus a version-transition diagram.
- What you can do after
- Operate database delivery by applying schema and reference-data changes through explicit, source-controlled migrations.
Read how Unit Testing Principles, Practices, and Patterns explains migration →
Pro ASP.NET Core 7, Tenth Edition
A database migration is a versioned change that creates or updates a database schema to match an application's data model.
- How it is used
- Keeps database schemas aligned with changing Entity Framework Core data models in ASP.NET Core applications.
- How deep it goes
- Works through generating and applying initial and subsequent migrations, including startup application and multi-context selection; does not develop migration SQL by hand.
- Examples
- Uses initial schemas, added order storage, a shipped-order property, and a separate Identity database.
- What you can do after
- Operate/configure it with dotnet-ef commands or startup migration application, selecting a context when multiple databases exist.
Read how Pro ASP.NET Core 7, Tenth Edition explains migration →
Kafka for Architects
Extract-transform-load is a data integration process that extracts data from a source, transforms it, and loads it into a target storage system.
- How it is used
- Uses ETL for periodic warehouse loading, reporting, and historical analysis when real-time results are unnecessary.
- How deep it goes
- Explains ETL stages and staging-area operations, then outlines Kafka schema-migration procedures without a code-level implementation.
- Examples
- Illustrates ETL with a staging-area diagram and controlled UAT transfers with masking and schema transformation.
- What you can do after
- Evaluate/understand it: Choose periodic ETL where it fits and plan coordinated Kafka transitions for incompatible schemas.
Google Anthos in Action
Migration is the process of moving workloads or applications from one execution environment or deployment model to another.
- How it is used
- Uses migration to shift VM-based workloads into containers and deploy them through GKE or Anthos.
- How deep it goes
- Explains workload selection, three operational phases, generated artifacts, credentials, validation, deployment, and Windows variations.
- Examples
- Demonstrates Apache on a GCE VM, Linux and Windows migrations, generated artifacts, and load-balanced Kubernetes deployment.
- What you can do after
- Apply via migctl: register sources, create migration plans, generate artifacts, inspect status, and deploy containerized workloads.
Writing for Developers: Blogs that get read
A database migration is the process of changing a database's organization, deployment, or stored data while preserving the application's required behavior.
- How it is used
- Guides teams through moving or reorganizing production data while managing transformation cost, downtime, and correctness.
- How deep it goes
- Explains type translation, sharding choices, double writes, backfilling, and integrity checks, but stops short of implementation details.
- Examples
- Uses a Postgres-to-FakeDB transfer and Notion’s migration from a monolithic database to sharded databases.
- What you can do after
- Operate/configure staged migrations using data transformation, double writes, backfilling, and integrity checks.
Read how Writing for Developers: Blogs that get read explains migration →
Machine Learning Platform Engineering
Extract-transform-load is a data-processing technique that extracts data from sources, transforms it, and loads it into a target system.
- How it is used
- Supports reliable ML data preparation by connecting structured ETL with repeatable, reproducible, and observable workflows.
- How deep it goes
- Introduces ETL as a workflow component but stops short of specifying extraction logic, transformation code, loading targets, or failure handling.
- Examples
- Uses structured ETL, versioned ETL pipelines, raw and intermediate datasets, and Kubeflow Pipelines as concrete artifacts.
- What you can do after
- Apply it via Kubeflow Pipelines to organize repeatable, reproducible, and observable ML data workflows.
Read how Machine Learning Platform Engineering explains migration →
The Quick Python Book, Fourth Edition
Extract-transform-load is a data-integration process that extracts data from sources, transforms it into a suitable form, and loads it into a destination system.
- How it is used
- Frames Python data processing as a pipeline for reading, cleaning, reorganizing, and storing file-based data.
- How deep it goes
- Explains ETL stages and practical file concerns, but stops short of detailed database storage and advanced structured-file processing.
- Examples
- Uses text files, delimited files, CSV data, spreadsheet files, UTF-8 encoding, and database destinations as working artifacts.
- What you can do after
- Apply ETL in Python to extract file data, clean and normalize records, and write results for applications or analysis.
Read how The Quick Python Book, Fourth Edition explains migration →
Building Web APIs with ASP.NET Core
A database migration is a versioned set of changes that updates a database schema or related persisted data to match an application's data model.
- How it is used
- Keeps a code-first database schema synchronized with an evolving application data model while preserving existing data.
- How deep it goes
- Explains generated files, snapshots, creation, application, rollback, verification, and maintenance risks without detailing generated SQL internals.
- Examples
- Demonstrates Initial, Chapter4_Exercises, and Identity migrations applied, inspected, or used to restore an earlier schema.
- What you can do after
- Operate EF Core CLI migrations to create, apply, inspect, and revert database schema changes.
Read how Building Web APIs with ASP.NET Core explains migration →
PostgreSQL Mistakes and How to Avoid Them
A database migration is a planned change to database structure or related objects that is applied to an existing database.
- How it is used
- Guides planned PostgreSQL upgrades, cross-database moves, and schema changes while emphasizing preparation and operational safety.
- How deep it goes
- Explains migration risks through an encoding incident and introduces DDL analysis, but stops short of a complete migration workflow.
- Examples
- Uses a MySQL-to-PostgreSQL dump, latin1-to-UTF-8 conversion, null-byte cleanup, and Squawk warnings about migration locks.
- What you can do after
- Diagnose migration failures with import output, convert legacy dump encodings, clean invalid bytes, and review DDL risks before deployment.
Read how PostgreSQL Mistakes and How to Avoid Them explains migration →
Architecture Modernization: Socio-technical alignment of software, strategy, and structure
ETL is a data-integration process that extracts data, transforms it, and then loads it into a target system.
- How it is used
- Frames migration as the path from legacy subsystems to architecture aligned with domains and independent value streams.
- How deep it goes
- Explains investment choices, parallel operation, target alignment, and roadmap needs without prescribing implementation details.
- Examples
- Uses parallel old and new versions, subsystem rewrites, and ETL pipelines serving data warehouses and data lakes.
- What you can do after
- Evaluate modernization investments and choose migration strategies that balance business value, return on investment, and cost of delay.
Apache Kafka in Action
A ZooKeeper-to-KRaft migration is the controlled transition of Kafka cluster metadata management from ZooKeeper to KRaft.
- How it is used
- Moves an existing Kafka cluster’s metadata management from ZooKeeper to KRaft through a staged transition.
- How deep it goes
- Outlines upgrade stages, controller settings, replication, and a rollback point, while leaving detailed execution instructions to official documentation.
- Examples
- Uses a staged version-upgrade sequence and example migration settings for controllers and brokers.
- What you can do after
- Evaluate a migration plan by checking its upgrade order, controller configuration, and rollback point.
Code Like a Pro in Rust
A database migration is a versioned change that transforms a database schema or stored data from one state to another.
- How it is used
- Runs schema changes during Rust service startup, after database connection and before API routes begin serving requests.
- How deep it goes
- Explains migration authoring, application, idempotence, reversibility, and operational risk, but does not detail SQLx internals.
- Examples
- Uses a SQLx CLI-generated todos migration and a Rust initializer that applies migrations to an optionally created SQLite database.
- What you can do after
- Operate SQLx migrations safely by generating files, applying them during initialization, and checking database targets before execution.
Building Distributed Applications that Work
Migration is the process of adapting an existing software system or project to another platform version or environment.
- How it is used
- Adapts an existing Aspire application to a newer version while retaining its service projects and integrations.
- How deep it goes
- Gives project-file edits and CLI commands for a staged upgrade; does not detail application-code changes.
- Examples
- Uses project definitions for a web frontend, API service, and SQL Server integration across Aspire 8, 9, and 13.
- What you can do after
- Operate/configure an Aspire 8-to-13 upgrade using manual edits followed by `aspire update`, with optional project-file cleanup.
Read how Building Distributed Applications that Work explains migration →
Related concepts
- eltcontrasts with · ELT is a data-integration approach that extracts data, loads it into a target environment, and transforms it there.
- RunPythonhas part · RunPython is a Django migration operation that executes supplied Python functions when migrating forward or backward.
- data availabilityaddresses · Data availability is the extent to which required data exists and can be accessed for its intended uses when needed.
- databaseuses · A database is an organized collection of persistent data managed by software for storage, retrieval, querying, and modification.
- schemaconfigures · A data schema is a formal specification of the structure, fields, types, relationships, and constraints of data.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.


















