Google Cloud SQL 以编程方式导入数据库(无提示)

Gel*_*der 1 google-cloud-sql google-cloud-sdk

我想导出一个数据库并以编程方式将输出导入另一个数据库。这是我到目前为止:

gcloud sql export sql instance_name gs://bucketname/db.gz --database=db_name
gcloud sql databases create new_db --instance=instance_name
gcloud sql import sql instance_name gs://bucketname/db.gz --database=new_db

Created database [new_db].                                                                            
instance: instance_name                                                                                                     
Data from [gs://bucketname/db.gz]                                                        
will be imported to [instance_name].                                                                                             

Do you want to continue (Y/n)
Run Code Online (Sandbox Code Playgroud)

如您所见,提示是问题所在。如何在没有提示的情况下导入它?还有其他方法可以导入导出吗?

Arm*_*_SC 6

您可以在运行命令时使用--quiet, -q参数gcloud,如下所示:

gcloud sql import sql instance_name gs://bucketname/db.gz --database=new_db -q
Run Code Online (Sandbox Code Playgroud)

gcloud参考官方文档中包含有关万一你想利用它来看看这个参数如下解释:

--安静,-q

运行 gcloud 命令时禁用所有交互式提示。如果需要输入,将使用默认值,否则将引发错误。覆盖此命令调用的默认 core/disable_prompts 属性值。必须在命令的开头使用。这相当于将环境变量 CLOUDSDK_CORE_DISABLE_PROMPTS 设置为 1。

此外,您可以使用API 调用作为替代选项来执行导入/导出任务cURL;这样,您只需要向服务发送授权请求即可。

*输入:

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
 --header 'Content-Type: application/json' \
 --data '{"importContext":
            {"fileType": "SQL",
             "uri": "gs://[BUCKET_NAME]/[PATH_TO_DUMP_FILE]",
             "database": "[DATABASE_NAME]" }}' \
-X POST \
https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/import
Run Code Online (Sandbox Code Playgroud)

*出口:

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"exportContext":
                {"fileType": "SQL",
                 "uri": "gs://<BUCKET_NAME>/<PATH_TO_DUMP_FILE>",
                 "databases": ["<DATABASE_NAME1>", "<DATABASE_NAME2>"] }}' \    
-X POST \    
https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/export
Run Code Online (Sandbox Code Playgroud)