Azure SQL documentation update:az postgres flexible-serverの破壊的変更と移行ポイント

Azure SQL documentation updateとして確認すべき今回の変更は、az postgres flexible-server配下の複数コマンドで、--nameと--server-nameの使い分けを統一する破壊的変更です。結論から言うと、これまで一部の子リソース操作で--nameが「サーバー名」を指していたケースが見直され、今後は--nameを「操作対象の名前」、--server-nameを「PostgreSQL Flexible Serverのサーバー名」として扱う方向に変わります。

影響を受けるのは、Azure SQL Database本体のaz sqlコマンドではなく、Azure Database for PostgreSQL Flexible ServerをAzure CLIで操作している管理者・開発者です。特に、バックアップ、データベース作成、ファイアウォール規則、長期保持、移行、レプリカ作成をCI/CDや運用スクリプトで自動化している環境では、旧パラメーターのままだとコマンドが失敗する可能性があります。Azure/azure-cliのPR #33343は2026年5月20日にマージされ、対象コマンドと--name/--server-nameの整理方針が示されています。 (GitHub)

目次

Azure SQL documentation updateの対象は何か

今回の「Azure SQL documentation update: [POSTGRESQL] BREAKING CHANGE」は、名前だけを見るとAzure SQL全般の変更に見えますが、実際の対象はaz postgres flexible-serverコマンド群です。

つまり、次のような運用をしているチームが主な対象です。

  • Azure Database for PostgreSQL Flexible Serverを利用している
  • Azure CLIでバックアップ、DB、ファイアウォール、移行、レプリカを操作している
  • Azure DevOps、GitHub Actions、Cloud Shell、Runbook、シェルスクリプト、PowerShellでaz postgres flexible-serverを実行している
  • 手順書や社内Runbookに古いCLI構文を記載している

一方で、az sql db、az sql server、az sql miなど、Azure SQL DatabaseやAzure SQL Managed Instance向けのコマンドを使っているだけなら、この変更の直接対象ではありません。ただし、同じAzure環境でSQL DatabaseとPostgreSQL Flexible Serverを併用している場合は、運用スクリプトの棚卸しが必要です。

変更の中心は「–nameは操作対象、–server-nameはサーバー名」

今回の変更で最も重要なのは、--nameの意味がコマンドごとに揺れていた点を整理することです。

従来は、たとえばファイアウォール規則やデータベースを操作するコマンドでも、--nameがサーバー名を指すケースがありました。これだと、スクリプトを読む人が「この--nameはサーバー名なのか、DB名なのか、ルール名なのか」を毎回文脈で判断する必要があります。

新しい考え方では、--nameはコマンドが直接操作するオブジェクトの名前です。サーバー名が必要な場合は、--server-nameまたは短縮形の-sを使います。Microsoft Learnの今後の破壊的変更ページでも、firewall-rule、migration、db、backup、long-term-retentionでこの方針が案内されています。 (Microsoft Learn)

対象コマンド群これまで問題になりやすかった指定変更後の考え方確認すべきポイント
az postgres flexible-server backup--nameがサーバー名、--backup-nameがバックアップ名--server-nameがサーバー名、--nameがバックアップ名backup createではバックアップ名引数が不要になる案内もあるため、実行環境の--helpで必須項目を確認する
az postgres flexible-server db--nameがサーバー名、--database-nameがDB名--server-nameがサーバー名、--nameがDB名DB作成・削除・参照の自動化スクリプトを優先確認する
az postgres flexible-server firewall-rule--nameがサーバー名、--rule-nameが規則名--server-nameがサーバー名、--nameが規則名-nをサーバー名として使っているスクリプトは特に危険
az postgres flexible-server long-term-retention--nameがサーバー名、--backup-nameがバックアップ名--server-nameがサーバー名、--nameがバックアップ名コマンドグループ自体の非推奨・削除予定も確認する
az postgres flexible-server migration--nameがサーバー名、--migration-nameが移行名--server-nameがサーバー名、--nameが移行名移行ジョブの作成・確認・更新スクリプトを確認する
az postgres flexible-server replica create--replica-nameでレプリカ名を指定--nameでレプリカ名を指定レプリカ作成時の名前指定だけでなく、ネットワーク関連の変更案内も合わせて確認する

旧構文と新構文の具体例

実務で最も壊れやすいのは、短縮オプション-nを何となくサーバー名として使っているスクリプトです。今後は、子リソースを操作するコマンドでは-nの意味が変わるため、移行時は短縮形ではなくフルオプションで書くほうが安全です。

データベース作成コマンドの例

変更前の例では、--nameがサーバー名、--database-nameがデータベース名でした。

az postgres flexible-server db create \
  --resource-group rg-prod \
  --name pg-prod-01 \
  --database-name appdb

変更後の考え方では、サーバー名を--server-name、データベース名を--nameで指定します。

az postgres flexible-server db create \
  --resource-group rg-prod \
  --server-name pg-prod-01 \
  --name appdb

az postgres flexible-server dbでは、--database-name/-dが非推奨となり、--name/-nがデータベース名を指す方向の変更が案内されています。 (Microsoft Learn)

ファイアウォール規則作成コマンドの例

ファイアウォール規則では、旧構文の-nがサーバー名、--rule-nameが規則名として使われていたケースが多いはずです。

az postgres flexible-server firewall-rule create \
  --resource-group rg-prod \
  --name pg-prod-01 \
  --rule-name allow-office \
  --start-ip-address 203.0.113.10 \
  --end-ip-address 203.0.113.10

変更後は、サーバー名と規則名を明確に分けます。

az postgres flexible-server firewall-rule create \
  --resource-group rg-prod \
  --server-name pg-prod-01 \
  --name allow-office \
  --start-ip-address 203.0.113.10 \
  --end-ip-address 203.0.113.10

firewall-ruleでは、--rule-name/-rが非推奨となり、--name/-nがファイアウォール規則名を指す方向で案内されています。 (Microsoft Learn)

バックアップ参照コマンドの例

バックアップ関連も混乱しやすい領域です。バックアップ名とサーバー名の両方が登場するため、--nameをサーバー名として使っているスクリプトは見直しが必要です。

# 変更前の例
az postgres flexible-server backup show \
  --resource-group rg-prod \
  --name pg-prod-01 \
  --backup-name pre-change-backup
# 変更後の考え方
az postgres flexible-server backup show \
  --resource-group rg-prod \
  --server-name pg-prod-01 \
  --name pre-change-backup

Microsoft Learnのバックアップコマンド説明では、--name/-nがバックアップ名を指すように再利用され、サーバー名には--server-name/-sを導入する案内が掲載されています。 (Microsoft Learn)

レプリカ作成コマンドの例

レプリカ作成では、レプリカ名の指定が--replica-nameから--nameへ寄せられます。

# 変更前の例
az postgres flexible-server replica create \
  --resource-group rg-prod \
  --source-server pg-primary-01 \
  --replica-name pg-replica-01
# 変更後の考え方
az postgres flexible-server replica create \
  --resource-group rg-prod \
  --source-server pg-primary-01 \
  --name pg-replica-01

ここで注意したいのは、replica createでは「作成するレプリカの名前」が--nameです。既存のプライマリサーバーを指す引数まで機械的に--server-nameへ置換しないようにしてください。

影響範囲はCLIスクリプトと運用手順が中心

この変更は、PostgreSQLのデータ形式やアプリケーションのSQL文を変えるものではありません。アプリケーションの接続文字列、テーブル定義、クエリ、PostgreSQLのバージョンが直接変わるわけではありません。

ただし、Azure CLIを使った運用自動化には大きく影響します。特に次のような場所に旧構文が残りやすいです。

確認対象影響の出方優先度
Azure DevOps / GitHub Actionsデプロイ中にDB作成、FW規則追加、バックアップ取得が失敗する高
Cloud Shell用の手順書担当者が手順通りに実行してもエラーになる高
運用Runbook / Automation Account定期バックアップ確認や移行確認のジョブが失敗する高
Terraformのlocal-execや外部スクリプトTerraform自体ではなく、内部で呼ぶazコマンドが失敗する中
社内Wiki・障害対応手順緊急時に古いコマンドを実行して復旧が遅れる中
開発者のローカルスクリプト個人環境では動くがCIで失敗する、またはその逆が起きる中

Bicep、ARMテンプレート、Terraform ProviderでAzure Resource Manager APIを直接使っている部分は、基本的にはこのCLIパラメーター変更の直接対象ではありません。ただし、デプロイ前後の補助処理でAzure CLIを呼び出している場合は対象になります。

管理者と開発者がまず確認すべきこと

本番環境に影響を出さないために、最初にやるべきことは「Azure CLIの更新」ではなく「旧構文の棚卸し」です。CLIだけ先に更新すると、どのスクリプトが壊れたのかを本番デプロイ時に初めて知ることになります。

手順実施内容判断基準
CLIバージョンを確認するaz versionまたはaz --versionを実行するチーム内、CI、Cloud Shell、自己ホストランナーで差がないか確認する
対象コマンドを検索するリポジトリ、Runbook、Wikiからaz postgres flexible-serverを検索するbackup、db、firewall-rule、long-term-retention、migration、replica createを含むものを抽出する
旧パラメーターを分類する--name、-n、--backup-name、--database-name、--rule-name、--migration-name、--replica-nameを確認する--nameがサーバー名なのか、子リソース名なのかを1行ずつ判断する
新構文に置き換えるサーバー名は--server-name、操作対象は--nameへ寄せる文字列置換ではなく、コマンド単位で意味を確認する
検証環境で実行する参照系、作成系、削除系の順にテストするlistやshowで構文を確認してから、createやdeleteを試す
手順書を更新する社内Wiki、Runbook、障害対応手順を修正する-nの意味が誤解されないよう、重要手順ではフルオプションを使う

Azure CLIのインストール案内では、インストール済みバージョン確認のためにaz versionを実行するよう案内されています。環境ごとにAzure CLIの反映タイミングが異なるため、ローカルPC、Cloud Shell、CIランナーを同じ前提で扱わないことが重要です。 (Microsoft Learn)

旧構文を探すためのコマンド例

Linux、macOS、WSL、Cloud Shellでは、次のように対象コマンドを検索できます。

grep -RInE "az postgres flexible-server (backup|db|firewall-rule|long-term-retention|migration|replica create)" .

PowerShellでは、次のように検索できます。

Get-ChildItem -Recurse -File |
  Select-String -Pattern "az postgres flexible-server (backup|db|firewall-rule|long-term-retention|migration|replica create)"

見つかった行に-nが含まれている場合は、特に注意してください。旧構文では-nがサーバー名を意味していたとしても、新しい構文ではバックアップ名、DB名、ファイアウォール規則名、移行名などを指す可能性があります。

置き換え時の判断基準

移行では、単純な一括置換を避ける必要があります。--nameは他のAzure CLIコマンドでも広く使われるため、すべての--nameを--server-nameに変えると、別のコマンドを壊します。

旧パラメーター新しい指定の目安対象
--nameまたは-nでサーバー名を指定していた--server-nameまたは-sへ変更backup、db、firewall-rule、long-term-retention、migration
--backup-nameでバックアップ名を指定していた--nameへ変更。ただしbackup createは必須性を--helpで確認backup、long-term-retention
--database-nameまたは-dでDB名を指定していた--nameへ変更db
--rule-nameまたは-rでFW規則名を指定していた--nameへ変更firewall-rule
--migration-nameで移行名を指定していた--nameへ変更migration
--replica-nameでレプリカ名を指定していた--nameへ変更replica create

移行コマンドでは、--migration-nameが非推奨となり、--name/-nが移行名を指定する方向の変更が案内されています。移行処理は本番データに関わることが多いため、ジョブ作成、状態確認、更新、名前可用性チェックをまとめて検証してください。 (Microsoft Learn)

長期保持コマンドはパラメーター変更だけで見ない

az postgres flexible-server long-term-retentionについては、--nameと--server-nameの整理だけでなく、コマンドグループ自体が非推奨で、将来的に削除される案内がある点に注意が必要です。Microsoft Learnでも、長期保持コマンドグループの削除予定と、--backup-name、--name、--server-nameに関する変更が掲載されています。 (Microsoft Learn)

そのため、長期保持を使っている場合は、単にスクリプトを書き換えるだけでは不十分です。次の観点で運用設計を見直してください。

確認項目見るべきポイント
現在の用途監査対応、災害復旧、手動バックアップ保管など、何のために使っているか
実行頻度定期ジョブなのか、障害時だけの手順なのか
代替手段Azure Portal、サポート案内、バックアップ設計の見直しが必要か
手順書古いlong-term-retentionコマンドを緊急時手順に残していないか
権限サポート問い合わせやバックアップ確認を実施できる担当者が明確か

長期保持は、障害発生時や監査対応時に初めて使うケースもあります。普段動かさない手順ほど古い構文が残りやすいため、今回の変更をきっかけに復旧手順も確認しておくべきです。

失敗しやすいポイント

-nをサーバー名として使い続ける

最も多い失敗は、-nをサーバー名の短縮形として使い続けることです。

az postgres flexible-server firewall-rule create -g rg-prod -n pg-prod-01 --rule-name allow-office

このようなコマンドは、見た目だけでは-nが何を指すのか分かりにくくなります。移行後は、少なくとも運用手順やCIでは次のように明示するのが安全です。

az postgres flexible-server firewall-rule create \
  --resource-group rg-prod \
  --server-name pg-prod-01 \
  --name allow-office

短縮形は便利ですが、破壊的変更の直後は誤読を招きます。チーム全体が新しいルールに慣れるまでは、--server-nameと--nameを明示する運用に切り替えるのがおすすめです。

すべての--nameを機械的に置換する

az postgres flexible-server showやaz postgres flexible-server updateのように、サーバー自体を操作するコマンドでは、--nameがサーバー名を指す文脈もあります。今回問題になるのは、主に子リソースを操作するコマンドです。

そのため、次のような一括置換は避けてください。

--name → --server-name

正しい進め方は、コマンドグループごとに--nameが何を指しているかを判断することです。特に、db、firewall-rule、backup、migrationは、同じ--nameでも意味が大きく変わります。

CLIバージョン差を見落とす

開発者のローカルPCでは旧構文が動くのに、CIランナーでは失敗することがあります。逆に、CIだけAzure CLIが古く、ローカルでは新構文が通るケースもあります。

確認すべき場所は少なくとも次の4つです。

  • 開発者のローカル環境
  • Azure Cloud Shell
  • GitHub ActionsやAzure DevOpsのMicrosoft-hosted runner
  • 自己ホストランナー、Automation Account、踏み台サーバー

移行期間中は、az versionの出力をジョブログに残しておくと、障害時の切り分けが速くなります。

パラメーター永続化を見落とす

Azure CLIでは、環境によってパラメーター永続化の設定が使われている場合があります。PR内でも、データベース削除コマンドのエラーメッセージにおいて、--resource-group、--server-name、--nameの明示や、az config param-persist showによる確認に触れる修正が入っています。 (GitHub)

過去に永続化されたnameがサーバー名として残っていると、新構文では意図しない値として解釈される可能性があります。自動化環境では、必要な値をコマンドラインで明示し、暗黙の既定値に依存しない設計にするほうが安全です。

本番反映前のチェックリスト

本番環境で変更を反映する前に、次のチェックを済ませてください。

チェック項目合格条件
対象コマンドの棚卸しbackup、db、firewall-rule、long-term-retention、migration、replica createを含むスクリプトを洗い出している
-nの意味確認-nがサーバー名なのか、操作対象名なのかをすべて確認している
新構文への修正サーバー名は--server-name、操作対象は--nameとして書き分けている
検証環境での実行少なくともlist、show、代表的なcreateを検証している
CI/CDのログ確認az versionと対象コマンドの実行結果をログで確認できる
手順書更新社内Wiki、Runbook、障害対応手順の古い構文を修正している
ロールバック方針CLIバージョン固定で一時回避する場合の期限と担当者を決めている

CLIバージョンを一時的に固定することは、移行時間を確保する手段にはなります。ただし、破壊的変更そのものを避け続ける対策にはなりません。最終的には、新しいパラメーター設計に合わせてスクリプトを更新する必要があります。

まずやるべき対応

今回のAzure SQL documentation updateで確認すべきポイントは明確です。az postgres flexible-serverの子リソース操作では、--nameを「操作対象の名前」、--server-nameを「サーバー名」として使う前提に移行してください。

最初にやるべきことは、Azure CLIを更新することではなく、旧構文の検索です。リポジトリ、CI/CD、Runbook、社内Wikiから対象コマンドを洗い出し、-nや--nameが何を指しているかを確認します。そのうえで、検証環境で新構文を実行し、問題がなければ本番用のスクリプトと手順書を更新します。

Azure Database for PostgreSQL Flexible ServerをCLIで管理しているチームにとって、この変更は小さな表記変更ではなく、運用自動化の前提が変わる変更です。特にバックアップ、ファイアウォール、移行、レプリカ作成は本番影響が出やすいため、早めに棚卸ししておくことが安全です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次