cloud-composer-etl/dags/restore_postgres_backup.py (21 lines of code) (raw):
# Copyright 2023 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
This DAG restores the sql backup to populate the sample database.
"""
import os
from datetime import datetime
from airflow import models
from airflow.providers.google.cloud.operators.cloud_sql import CloudSQLImportInstanceOperator
GCS_SQL_BACKUP_BUCKET=os.environ.get("GCS_SQL_BACKUP_BUCKET")
FILE_NAME="gs://{}/citibike.sql".format(GCS_SQL_BACKUP_BUCKET)
INSTANCE_NAME=os.environ.get("SQL_INSTANCE_NAME")
with models.DAG(
dag_id='restore_postgres_backup',
description='Restore a PostgresSQL database backup',
start_date=datetime(2022, 1, 1),
schedule_interval="@once",
catchup=False,
tags=['example', 'infrastructure'],
) as dag:
import_body = {"importContext": {"fileType": "sql", "uri": FILE_NAME, "database":"citibike"}}
sql_import_task = CloudSQLImportInstanceOperator(
body=import_body,
instance=INSTANCE_NAME,
task_id='sql_import_task'
)