<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Database on Hanh Pham's Blog</title><link>https://hanhpham.vercel.app/tags/database/</link><description>Recent content in Database on Hanh Pham's Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 30 Sep 2026 09:00:00 +0700</lastBuildDate><atom:link href="https://hanhpham.vercel.app/tags/database/index.xml" rel="self" type="application/rss+xml"/><item><title>GitOps Reality with ArgoCD: When Declarative State Fights the Database</title><link>https://hanhpham.vercel.app/posts/gitops-argocd-database-migration-reality/</link><pubDate>Wed, 30 Sep 2026 09:00:00 +0700</pubDate><guid>https://hanhpham.vercel.app/posts/gitops-argocd-database-migration-reality/</guid><description>GitOps treats application deployments as stateless Git diffs, but production backends run on stateful databases. Here is why automated Git rollbacks break under schema migrations, and how to decouple delivery safely.</description></item><item><title>Making a Multi-Step SQL Server Script's Rollback Actually Trustworthy</title><link>https://hanhpham.vercel.app/posts/sql-server-trustworthy-rollback-xact-abort/</link><pubDate>Sun, 06 Sep 2026 11:00:00 +0700</pubDate><guid>https://hanhpham.vercel.app/posts/sql-server-trustworthy-rollback-xact-abort/</guid><description>When one step in a multi-step SQL Server script fails, what actually happens to your data depends entirely on how you&amp;rsquo;ve wired up error handling, and the default is not what most people assume. Three scenarios, measured with real ledger output.</description></item></channel></rss>