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

时间:2018-08-10 10:58:31

标签: google-cloud-sql google-cloud-sdk

我要导出数据库,并<编程>以编程方式将输出导入另一个数据库。这是我到目前为止的内容:

<app-userinfo></app-userinfo>
<div style="margin-top:50px">
  <app-qualification></app-qualification>
</div>

您可以看到提示是问题所在。 如何在没有提示的情况下导入它?还有另一种进口方式吗?

1 个答案:

答案 0 :(得分:1)

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

gcloud sql import sql instance_name gs://bucketname/db.gz --database=new_db -q

Convert multiple relationships between 2 nodes to a single one with weight官方文档包含有关此参数的以下说明,以备您查看:

  

-安静,-q

     

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

此外,您可以使用cURL API调用作为替代选项来执行gcloud Reference / import任务;这样,您只需要将export请求发送到服务。

*正在导入:

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

*导出:

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