Liquibase を使用して Cloud Spanner におけるスキーマ変更を管理
Google Cloud Japan Team
※この投稿は米国時間 2021 年 2 月 11 日に、Google Cloud blog に投稿されたものの抄訳です。
Liquibase の オープンソース データベース DevOps ライブラリを使用して、Cloud Spanner のスキーマ変更の管理と自動化が可能になりましたのでお知らせいたします。Liquibase Cloud Spanner 拡張機能のベータ版 1.0 をご利用いただけるようになりました。Liquibase の CI / CD のメリットすべてを Spanner でご活用いただけます。
GitHub のソースと詳細情報は cloudspannerecosystem/liquibase-spanner でご確認いただけます。
サポートされる機能
この拡張機能では、次の変更タイプがサポートされています: createTable、dropTable、addColumn、modifyDataType、addNotNullConstraint、dropColumn、createIndex、dropIndex、addForeignKeyConstraint、dropForeignKeyConstraint、dropAllForeignKeyConstraints、addLookupTable、insert、update、loadData、loadUpdateData。
ChangeTypes は、Spanner エミュレータと実際の Spanner を使用して、単体テストとしてすべてテストされています。
例
例として、Spanner に適用される変更ログを示す changelog.yaml が用意されています。これは Spanner を使用して Liquibase のベスト プラクティスを適用するために役立ちます。
次の内容が含まれます。
create-schema.yaml: インターリーブされたテーブル、列オプション、インデックスを含め、Singers テーブルと Albums テーブル用に作成します。
load-data-singers.yaml: CSV から Singers テーブルにデータを読み込みます。
load-update-data-singers.yaml: CSV から Singers テーブルを挿入、更新します。
add-lookup-table-singers-countries.yaml: Singers の Country フィールドから外部キーとして Countries テーブルを作成します。
modify-data-type-singers-lastname.yaml: Singers の LastName 列のデータ型を変更します。
insert.yaml: Singers テーブルに行を挿入します。
delete.yaml: Singers から行を削除します。
update.yaml: Singers の行を更新します。
まずは Cloud Spanner インスタンスを GCP アカウントまたは Spanner Qwiklab で作成し、Liquibase の拡張機能をお試しください。
-Google Cloud 戦略的クラウド エンジニア Mark Scannell
-データベース担当プロダクト マネージャー Ron Pantofaro