<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Goose on Jacob Edwards</title>
    <link>https://jacobedwards.org/tags/goose/</link>
    <description>Recent content in Goose on Jacob Edwards</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <managingEditor>jacob@jacobedwards.org (Jacob Edwards)</managingEditor>
    <webMaster>jacob@jacobedwards.org (Jacob Edwards)</webMaster>
    <lastBuildDate>Mon, 13 Apr 2026 20:09:00 -0700</lastBuildDate>
    <atom:link href="https://jacobedwards.org/tags/goose/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Goose for Database Migrations</title>
      <link>https://jacobedwards.org/posts/goose-database-migration/</link>
      <pubDate>Mon, 13 Apr 2026 20:09:00 -0700</pubDate><author>jacob@jacobedwards.org (Jacob Edwards)</author>
      <guid>https://jacobedwards.org/posts/goose-database-migration/</guid>
      <description>&lt;p&gt;When developing a database schema, it&amp;rsquo;s useful to represent it as&#xA;a series of incremental changes that handle data migrations alongside&#xA;the schema migrations. &lt;a href=&#34;https://github.com/pressly/goose&#34;&gt;Goose&lt;/a&gt;&#xA;is a great tool for this when working with SQL databases with its&#xA;simplicity and first-class Go integration.&lt;/p&gt;&#xA;&lt;p&gt;Goose migrations are stored in a directory either by date or with&#xA;a sequence number, and can be created with the &lt;code&gt;create&lt;/code&gt; command.&#xA;Within the migration, the block annotated with the &lt;code&gt;+goose Up&lt;/code&gt;&#xA;comment is executed to apply the migration, and the block under&#xA;&lt;code&gt;+goose Down&lt;/code&gt; is run to roll it back. A basic migration might look&#xA;like this:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
