<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Schema Migration on Nalar</title>
    <link>https://nalar.dev/tags/schema-migration/</link>
    <description>Recent content in Schema Migration on Nalar</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 13 Sep 2026 00:00:00 +0700</lastBuildDate>
    <atom:link href="https://nalar.dev/tags/schema-migration/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Schema Changes Are Multi-Version Protocols</title>
      <link>https://nalar.dev/schema-changes-are-multi-version-protocols/</link>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0700</pubDate>
      <guid>https://nalar.dev/schema-changes-are-multi-version-protocols/</guid>
      <description>&lt;p&gt;A column rename looks atomic in a schema diff. A deployed system rarely experiences it that way.&lt;/p&gt;&#xA;&lt;p&gt;During a rolling release, old application processes can remain active after new processes start. Background jobs may run code built from another release. Replicas can lag behind a primary. Queued work can outlive the binary that created it. Data written before the change remains present after the new schema exists. The migration therefore crosses several versions of code and data at once.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Expand and Contract at Database Schema Boundaries</title>
      <link>https://nalar.dev/expand-and-contract-at-database-schema-boundaries/</link>
      <pubDate>Sat, 12 Sep 2026 00:00:00 +0700</pubDate>
      <guid>https://nalar.dev/expand-and-contract-at-database-schema-boundaries/</guid>
      <description>&lt;p&gt;A database column can be structurally valid and still be incompatible with the application processes using it. Renaming &lt;code&gt;customer_name&lt;/code&gt; to &lt;code&gt;display_name&lt;/code&gt;, for example, is trivial as a data-definition operation on many databases. The harder boundary appears when one application process still issues queries against the old name while another process already expects the new one.&lt;/p&gt;&#xA;&lt;p&gt;That overlap is common whenever application replacement is not atomic. Rolling deployments, multiple service instances, delayed workers, and independent consumers can leave more than one application version active at the same time. A schema migration then has two audiences: the database engine and every executable version that can reach the database during the transition.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
