{"id":112083,"date":"2026-10-12T12:00:00","date_gmt":"2026-10-12T12:00:00","guid":{"rendered":"https:\/\/www.red-gate.com\/simple-talk\/?p=112083"},"modified":"2026-09-29T15:11:36","modified_gmt":"2026-09-29T15:11:36","slug":"how-to-make-database-schema-changes-without-downtime-in-mysql-complete-guide","status":"publish","type":"post","link":"https:\/\/www.red-gate.com\/simple-talk\/databases\/mysql\/how-to-make-database-schema-changes-without-downtime-in-mysql-complete-guide\/","title":{"rendered":"How to make database schema changes without downtime in MySQL: complete guide"},"content":{"rendered":"\n<p><strong>Every growing application eventually faces the same challenge: your database schema needs to change, but your users can&#8217;t afford the downtime. Whether you&#8217;re adding a column, creating an index, or restructuring a table with billions of rows, schema changes can lock tables, strain server resources, and disrupt live traffic if handled carelessly.<\/strong><\/p>\n\n\n\n<p><strong>The good news is that MySQL offers several ways to make these changes while keeping your database online and responsive. This guide breaks down the main causes of schema-change downtime and walks through the tools and techniques \u2014 from built-in online DDL to third-party utilities like Percona Toolkit and gh-ost \u2014 that let you evolve your database safely <em>without<\/em> taking your application offline.<\/strong><\/p>\n\n\n\n<p>If we dig into ancient Greece, many of us will remember a quote or two from our favorite philosophers. According to <a href=\"https:\/\/en.wikipedia.org\/wiki\/Heraclitus\" target=\"_blank\" rel=\"noreferrer noopener\">Heraclitus<\/a>, <em>\u201cthe only constant in life is change&#8221;<\/em> &#8211; and it&#8217;s hard not to agree with that.<\/p>\n\n\n\n<p>Change is a constant everywhere, including in your <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/\" target=\"_blank\" rel=\"noreferrer noopener\">databases<\/a>. Many applications and websites deal with all kinds of data that flows in, out, and is modified from time to time, too. And that leads us on to downtime &#8211; the unfortunate reality of some of these modifications, such as <a href=\"https:\/\/www.ibm.com\/docs\/en\/ias?topic=tables-schema-changes\" target=\"_blank\" rel=\"noreferrer noopener\">schema changes<\/a>.<\/p>\n\n\n\n<p>Schema changes, especially those performed on databases powering applications dealing with <em>billions<\/em> of rows, require a certain amount of downtime. This downtime can be a problem for both you <em>and<\/em> the users using the application. However, there are things you can do to keep this downtime to a minimum.<\/p>\n\n\n\n<p><strong>In this guide, I&#8217;ll explain everything you need to know about schema changes in <a href=\"https:\/\/www.mysql.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">MySQL<\/a> and how exactly to reduce downtime during these schema changes.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-are-database-schema-changes\">What are database schema changes?<\/h2>\n\n\n\n<p><strong>Database schema changes are any changes &#8211; or modifications &#8211; that happen to the data inside of your database.<\/strong><\/p>\n\n\n\n<p>There are a few ways to perform schema changes inside your database, and most of them can be done online. This is because not all use cases are based on <a href=\"https:\/\/www.red-gate.com\/simple-talk\/cloud\/big-data\/big-data-what-it-is-why-projects-fail-and-how-to-get-value-from-it\/\" target=\"_blank\" rel=\"noreferrer noopener\">big data<\/a> and, if they are, most of us aren\u2018t <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/mysql\/optimizing-queries-in-mysql-optimizing-updates\/\" target=\"_blank\" rel=\"noreferrer noopener\">modifying <em>all<\/em> data in our database<\/a> at the same time!<\/p>\n\n\n\n<p>Additionally, use cases that <em>are<\/em> based on big data can often be done once the user activity within our applications dies down &#8211; such as in the evening and night, depending on your application.<\/p>\n\n\n\n<p><em>*Changes to database schemas being done \u201conline\u201d refers to changes to data that can be completed without downtime.<\/em><\/p>\n\n\n\n<p>Regardless, there will be instances where your database may be unavailable for an extended period of time during a schema change. This is because:<\/p>\n\n\n<div class=\"block-core-list\">\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/guidelines-for-choosing-data-types\/\" target=\"_blank\" rel=\"noreferrer noopener\">Index creation<\/a> and <a href=\"https:\/\/www.red-gate.com\/simple-talk\/databases\/guidelines-for-choosing-data-types\/\" target=\"_blank\" rel=\"noreferrer noopener\">column creation<\/a> can be a lengthy process, especially if your data is also partitioned and being searched through at the same time.<br><br><\/li>\n\n\n\n<li>Users may choose to actively peruse your application, putting strain on your database as a result.<br><br><\/li>\n\n\n\n<li>Your database may need to be shut down for a while to perform maintenance while you import data or perform schema changes.<\/li>\n<\/ul>\n<\/div>\n\n\n<section id=\"my-first-block-block_f89a04e5e8c7ae9cac58da127d61e439\" class=\"my-first-block alignwide\">\n    <div class=\"bg-brand-600 text-base-white py-5xl px-4xl rounded-sm bg-gradient-to-r from-brand-600 to-brand-500 red\">\n        <div class=\"gap-4xl items-start md:items-center flex flex-col md:flex-row justify-between\">\n            <div class=\"flex-1 col-span-10 lg:col-span-7\">\n                <h3 class=\"mt-0 font-display mb-2 text-display-sm\">MySQL schema comparison for faster, safer deployments<\/h3>\n                <div class=\"child:last-of-type:mb-0\">\n                                            Keep your development, test, and production environments aligned with Redgate Schema Compare for MySQL.                                    <\/div>\n            <\/div>\n                                            <a href=\"https:\/\/www.red-gate.com\/products\/schema-compare-for-mysql\/\" class=\"btn btn--secondary btn--lg\" aria-label=\"Learn more &amp; try for free: MySQL schema comparison for faster, safer deployments\">Learn more &amp; try for free<\/a>\n                    <\/div>\n    <\/div>\n<\/section>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-to-make-database-schema-changes-without-downtime-in-mysql\">How to make database schema changes without downtime in MySQL<\/h2>\n\n\n\n<p>To make changes to a database schema <em>without<\/em> downtime, it&#8217;s important to understand what leads to downtime or lag in the first place.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-what-causes-downtime-or-lag-when-making-database-schema-changes\">What causes downtime or lag when making database schema changes?<\/h3>\n\n\n<div class=\"block-core-list\">\n<ol class=\"wp-block-list\">\n<li><strong>Many changes in one go<\/strong> &#8211; or big, destructive ones, such as dropping or <a href=\"https:\/\/www.sqlservercentral.com\/articles\/how-to-rename-a-column-in-sql-server\" target=\"_blank\" rel=\"noreferrer noopener\">renaming columns<\/a>).<br><br><\/li>\n\n\n\n<li><strong>Tables being locked<\/strong> when operations are being performed.<br><br><\/li>\n\n\n\n<li><strong>Long-running <a href=\"https:\/\/www.red-gate.com\/simple-talk\/featured\/working-with-mysql-transactions\/\" target=\"_blank\" rel=\"noreferrer noopener\">transactions<\/a><\/strong> that may block or delay one another.<br><br><\/li>\n\n\n\n<li><strong>Operations that necessitate the rewrite or copying of data<\/strong> (e.g. <code>ALTER TABLE<\/code> on big columns).<br><br><\/li>\n\n\n\n<li><strong>High <a href=\"https:\/\/en.wikipedia.org\/wiki\/Input\/output\" target=\"_blank\" rel=\"noreferrer noopener\">I\/O (input\/output)<\/a> and\/or CPU usage prior to operations being performed.<\/strong> In other words, your application being under heavy load once you decide to start operations.<br><br><\/li>\n\n\n\n<li><strong>Application incompatibility<\/strong>, as deploying code that expects a new schema to exist (or vice versa) can cause service disruption.<\/li>\n<\/ol>\n<\/div>\n\n\n<p><strong>So, it&#8217;s crucial to try and eliminate as many of these as possible before making changes to your database schema.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-to-make-database-schema-changes-without-downtime-in-mysql-using-online-ddl\">How to make database schema changes without downtime in MySQL using online DDL<\/h2>\n\n\n\n<p><strong>To use <a href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.4\/en\/innodb-online-ddl-operations.html\" target=\"_blank\" rel=\"noreferrer noopener\">online DDL (data definition language)<\/a> in MySQL, you need to make schema changes while the schema (table\/database and tables within) remain available for reads and\/or writes as applicable.<\/strong> <\/p>\n\n\n\n<p>Here&#8217;s a handy guide on how exactly to achieve that:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Method for Online DDL<\/strong><\/td><td><strong>Explanation<\/strong><\/td><td><strong>Usage<\/strong><\/td><\/tr><tr><td>Running <code>ALTER TABLE<\/code> using <code>ALGORITHM<\/code> and, where applicable, <code>LOCK<\/code>.<\/td><td>Specifying <code>INSTANT<\/code> as the algorithm will force the database to not make a table copy and complete the action almost instantly &#8211; hence the name.<br><br><code>INPLACE<\/code>, meanwhile, will modify the table <em>without<\/em> creating a copy allowing for reads\/writes.<\/td><td><code>ALTER TABLE `table_name`ADD COLUMN `column_name` TIMESTAMP NULL,ALGORITHM=INSTANT|INPLACE[,LOCK=NONE];<\/code><\/td><\/tr><tr><td>Online DDL when migrating<\/td><td>Add a new schema, deploy compatible code, migrate data, remove the old schema.<\/td><td>See explanation.<\/td><\/tr><tr><td>Online DDL when deploying<\/td><td>Prepare a new database environment\/schema beforehand, then switch the traffic to it when necessary.<\/td><td>See explanation.<\/td><\/tr><tr><td>Rolling migrations<\/td><td>Aim to gradually and softly perform updates to your database while maintaining compatibility.<\/td><td>See explanation.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Important &#8211; keep this in mind when performing operations using the <code>ALGORITHM<\/code> capability in MySQL.<\/strong> If you specify that you want to perform an operation with a specified lock level and\/or algorithm and MySQL cannot perform it, the database will return an error.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-to-use-percona-toolkit-or-gh-ost-to-make-database-schema-changes-without-downtime-in-mysql\">How to use Percona Toolkit or gh-ost to make database schema changes without downtime in MySQL<\/h2>\n\n\n\n<p>Tools are available to perform database schema changes with &#8211; <a href=\"https:\/\/www.percona.com\/toolkit\/\" target=\"_blank\" rel=\"noreferrer noopener\">Percona Toolkit<\/a> and GitHub-developed <a href=\"https:\/\/github.com\/github\/gh-ost\" target=\"_blank\" rel=\"noreferrer noopener\">gh-ost<\/a> being two of these. <\/p>\n\n\n\n<p>Here&#8217;s how to perform database schema changes without downtime using either of these tools:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Tool<\/strong><\/td><td><strong>Explanation<\/strong><\/td><td><strong>Usage<\/strong><\/td><\/tr><tr><td><a href=\"https:\/\/www.percona.com\/toolkit\/\" target=\"_blank\" rel=\"noreferrer noopener\">Percona Toolkit<\/a> (<a href=\"https:\/\/docs.percona.com\/percona-toolkit\/pt-online-schema-change.html\" target=\"_blank\" rel=\"noreferrer noopener\"><code>pt-online-schema-change<\/code><\/a>)<\/td><td>The idea of <code>pt-online-schema-change<\/code> is to alter the database schema without blocking any reads or writes.<\/td><td><code>pt-online-schema-change<\/code> &#8212; alter <code>\u201c<em>ADD COLUMN x INT<\/em>\u201d D=database,t=table<\/code><\/td><\/tr><tr><td><a href=\"https:\/\/github.com\/github\/gh-ost\" target=\"_blank\" rel=\"noreferrer noopener\">gh-ost (a tool developed by GitHub)<\/a><\/td><td>gh-ost is a tool for online schema changes developed by GitHub.<\/td><td><code>gh-ost--host=localhost--database=dbname--table=tablename--alter=\u201dADD COLUMN x INT\u201d--execute<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Replace <code>ADD COLUMN x INT<\/code> with your statement that modifies the database schema.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-in-summary-which-mysql-database-schema-change-method-should-i-use\">In summary: which MySQL database schema change method should I use?<\/h2>\n\n\n\n<p>Now that you know what schema changes are and how to perform them without downtime in MySQL, you\u2019re probably wondering <em>which<\/em> schema change method to use.<\/p>\n\n\n\n<p>To summarize the options we&#8217;ve covered in this guide:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Method<\/strong><\/td><td><strong>When to Choose?<\/strong><\/td><\/tr><tr><td>Running <code>ALTER TABLE<\/code> using <code>ALGORITHM<\/code> and, where applicable, <code>LOCK<\/code>.<\/td><td>Use when the online DDL is supported by MySQL (i.e. when you&#8217;re using MySQL >=8.0 or <a href=\"https:\/\/mariadb.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">MariaDB<\/a> >=10.4.)<\/td><\/tr><tr><td>Online DDL when migrating\/deploying.<\/td><td>You find yourself deploying a new version of your website that requires a backward-compatible schema change.<\/td><\/tr><tr><td>Rolling migrations<\/td><td>Your website hangs on multiple instances (e.g. <a href=\"https:\/\/www.red-gate.com\/simple-talk\/devops\/containers-and-virtualization\/kubernetes-for-complete-beginners\/\" target=\"_blank\" rel=\"noreferrer noopener\">Kubernetes<\/a> and cloud deployments.)<\/td><\/tr><tr><td>Percona Toolkit (<a href=\"https:\/\/docs.percona.com\/percona-toolkit\/pt-online-schema-change.html\" target=\"_blank\" rel=\"noreferrer noopener\"><code>pt-online-schema-change<\/code><\/a>)<\/td><td>You cannot use online DDL without locking and\/or you have excessively large tables.<\/td><\/tr><tr><td>gh-ost<\/td><td>You are running large production-level databases using row-based binary logging.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>As you now know, there are multiple ways to make changes to your database schema <em>without<\/em> downtime in MySQL. Ultimately, the exact method you choose depends on you and <a href=\"https:\/\/www.amazon.de\/-\/en\/Hacking-MySQL-Breaking-Optimizing-Securing\/dp\/B0DFGK483D\" target=\"_blank\" rel=\"noreferrer noopener\">your use case<\/a>.<\/p>\n\n\n\n<section id=\"my-first-block-block_d79d8665d9be8dcc22be6cfc3d73cff4\" class=\"my-first-block alignwide\">\n    <div class=\"bg-brand-600 text-base-white py-5xl px-4xl rounded-sm bg-gradient-to-r from-brand-600 to-brand-500 red\">\n        <div class=\"gap-4xl items-start md:items-center flex flex-col md:flex-row justify-between\">\n            <div class=\"flex-1 col-span-10 lg:col-span-7\">\n                <h3 class=\"mt-0 font-display mb-2 text-display-sm\">Move fast. Govern at scale.<\/h3>\n                <div class=\"child:last-of-type:mb-0\">\n                                            Redgate Flyway Enterprise embeds guardrails in the database layer, so every change is policy-checked, deterministic, and traceable.                                    <\/div>\n            <\/div>\n                                            <a href=\"https:\/\/www.red-gate.com\/products\/flyway\/enterprise\/\" class=\"btn btn--secondary btn--lg\" aria-label=\"Try for free: Move fast. Govern at scale.\">Try for free<\/a>\n                    <\/div>\n    <\/div>\n<\/section>\n\n\n<section id=\"faq\" class=\"faq-block my-5xl\">\n    <h2>FAQs: How to make database schema changes without downtime in MySQL<\/h2>\n\n                        <h3 class=\"mt-4xl\">1. What is a database schema change?<\/h3>\n            <div class=\"faq-answer\">\n                <p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"ltr\">It&#8217;s any modification to your database&#8217;s structure or data \u2014 such as adding, removing, or altering columns, tables, or indexes.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">2. Can MySQL schema changes really be done with zero downtime?<\/h3>\n            <div class=\"faq-answer\">\n                <p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"ltr\">In many cases, yes. Using online DDL (data definition language) with the right <code>ALGORITHM<\/code> and <code>LOCK<\/code> settings, most changes can run while the table stays available for reads and writes. Very large or complex changes may still need extra tooling to avoid disruption, however.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">3. What usually causes downtime during a schema change?<\/h3>\n            <div class=\"faq-answer\">\n                <p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"ltr\">Common culprits include table locks, long-running transactions, large-scale data rewrites, high server load at the time of the change, and application code that&#8217;s incompatible with the new schema.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">4. When should I use Percona Toolkit instead of online DDL?<\/h3>\n            <div class=\"faq-answer\">\n                <p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"ltr\">Reach for <code>pt-online-schema-change<\/code> when your MySQL version doesn&#8217;t support lock-free online DDL for your specific change, or when you&#8217;re working with especially large tables.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">5. What&#039;s the difference between gh-ost and Percona Toolkit?<\/h3>\n            <div class=\"faq-answer\">\n                <p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"ltr\">Both avoid locking tables during changes, but gh-ost is built around row-based binary logging and is designed for large-scale production environments, while Percona Toolkit works more broadly across setups.<\/p>\n            <\/div>\n                    <h3 class=\"mt-4xl\">6. Do rolling migrations work for cloud or Kubernetes deployments?<\/h3>\n            <div class=\"faq-answer\">\n                <div role=\"feed\" aria-label=\"Chat messages\" aria-describedby=\"_r_15t_\" data-find-provider-scope=\"\">\n<div data-sizer-excess=\"0\" data-rocksteady-sizer=\"\">\n<div data-rs-index=\"1\" data-index=\"1\" data-last-message=\"true\">\n<div role=\"article\" aria-label=\"Message 2 of 2\">\n<div data-test-render-count=\"1\">\n<div class=\"group group\/message-row\">\n<div class=\"contents\">\n<div class=\"group relative relative pb-[var(--msg-assistant-pb,0.75rem)]\" data-is-streaming=\"false\">\n<div class=\"font-claude-response relative leading-[1.65rem] [&amp;_pre&gt;div]:bg-bg-000\/50 [&amp;_pre&gt;div]:border-0.5 [&amp;_pre&gt;div]:border-border-400 [&amp;_.ignore-pre-bg&gt;div]:bg-transparent [&amp;_.standard-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&amp;_.standard-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8 [&amp;_.progressive-markdown_:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2 [&amp;_.progressive-markdown_:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8\">\n<div>\n<div class=\"grid grid-rows-[auto_auto] min-w-0\">\n<div class=\"row-start-2 col-start-1 relative grid grid-rows-[auto_auto] isolate min-w-0\">\n<div class=\"row-start-1 col-start-1 relative z-[2] min-w-0\">\n<div>\n<div>\n<div class=\"standard-markdown grid-cols-1 grid [&amp;_&gt;_*]:min-w-0 gap-3 [&amp;_&gt;_*:last-child]:mb-0 print:block print:[&amp;_&gt;_*_+_*]:mt-3 standard-markdown\">\n<p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"ltr\">Yes. Rolling migrations are especially useful when your application runs across multiple instances, letting you update gradually while maintaining backward compatibility.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div>\n<div class=\"flow-root\">\n<div>\n<div class=\"ml-1 mt-6 flex items-center transition-transform duration-300 ease-out\">\n<div class=\"p-1 -translate-x-px\">\n<div aria-hidden=\"true\">\u00a0<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n            <\/div>\n            <\/section>\n","protected":false},"excerpt":{"rendered":"<p>Learn how to make MySQL schema changes without downtime. Compare online DDL, Percona Toolkit, and gh-ost to keep your database available during updates.&hellip;<\/p>\n","protected":false},"author":339547,"featured_media":107456,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[143527,143523,53,145792],"tags":[4168,4170,5854,4150],"coauthors":[146040],"class_list":["post-112083","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-sql-server","category-databases","category-featured","category-mysql","tag-database","tag-database-administration","tag-mysql","tag-sql"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/112083","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/users\/339547"}],"replies":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/comments?post=112083"}],"version-history":[{"count":7,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/112083\/revisions"}],"predecessor-version":[{"id":112260,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/112083\/revisions\/112260"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media\/107456"}],"wp:attachment":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media?parent=112083"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/categories?post=112083"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/tags?post=112083"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/coauthors?post=112083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}