<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Migrations on BenzHub</title><link>https://benzhub.github.io/tags/migrations/</link><description>Recent content in Migrations on BenzHub</description><generator>Hugo</generator><language>zh-TW</language><lastBuildDate>Thu, 20 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://benzhub.github.io/tags/migrations/index.xml" rel="self" type="application/rss+xml"/><item><title>D1 Migrations:用版本控制管理資料表結構 | Cloudflare 完整教學</title><link>https://benzhub.github.io/post/cloudflare/020-d1-migrations/</link><pubDate>Thu, 20 Aug 2026 00:00:00 +0000</pubDate><guid>https://benzhub.github.io/post/cloudflare/020-d1-migrations/</guid><description>&lt;blockquote&gt;
&lt;p&gt;上一篇《&lt;strong&gt;D1 入門:Serverless SQLite&lt;/strong&gt;》我們學會了在 Workers 裡用 SQL 建表、查資料、做交易。但真實專案的資料表結構不會一次定案:今天加個 &lt;code&gt;posts&lt;/code&gt; 表、明天幫 &lt;code&gt;users&lt;/code&gt; 加個欄位、後天補幾個索引。如果每次都手動 &lt;code&gt;wrangler d1 execute&lt;/code&gt; 一堆 SQL、還要用人腦記「本地套過沒、遠端套過沒」,遲早會亂。這就是 &lt;strong&gt;D1 Migrations(資料庫遷移)&lt;strong&gt;要解決的問題——它讓你像 &lt;strong&gt;Git&lt;/strong&gt; 管理程式碼一樣,把 &lt;strong&gt;schema&lt;/strong&gt; 的每一次變更變成&lt;/strong&gt;有編號、可追蹤、可重播、跨環境一致&lt;/strong&gt;的版本。這篇我們把 &lt;code&gt;wrangler d1 migrations create&lt;/code&gt; / &lt;code&gt;list&lt;/code&gt; / &lt;code&gt;apply&lt;/code&gt; 一路走完,含遷移檔命名順序、&lt;code&gt;--local&lt;/code&gt; vs &lt;code&gt;--remote&lt;/code&gt;、種子資料、CI 自動遷移,以及和 &lt;strong&gt;Drizzle ORM&lt;/strong&gt; 搭配的思路。&lt;/p&gt;
&lt;/blockquote&gt;</description></item></channel></rss>