【Go, CloudSQL】REST APIを使ってGCSに置いたCSVファイルをCloudSQLにインポートする

スポンサーリンク

ほぼ公式ドキュメントのままですが、リクエストBodyの説明が少なかったので例を載せておきます。

import (
        "fmt"
        "log"

        "golang.org/x/net/context"
        "golang.org/x/oauth2/google"
        "google.golang.org/api/sqladmin/v1beta4"
)

func main() {
        ctx := context.Background()

        c, err := google.DefaultClient(ctx, sqladmin.CloudPlatformScope)
        if err != nil {
                log.Fatal(err)
        }

        sqladminService, err := sqladmin.New(c)
        if err != nil {
                log.Fatal(err)
        }

        // GCPのプロジェクトID プロジェクト名ではないので注意
        project := "my-project"
        // CloudSQLのインスタンスID
        instance := "my-instance"

        rb := &sqladmin.InstancesImportRequest{
            request := &sqladmin.InstancesImportRequest{
		ImportContext: &sqladmin.ImportContext{
			CsvImportOptions: &sqladmin.ImportContextCsvImportOptions{
				Table:   "table_name",
				Columns: []string{"id"},
			},
			Database: "dbname",
			FileType: "CSV",
			Kind:     "sql#importContext",
			Uri:      "gs://bucketName/target.csv", //GCSに置いたCSVへのパス
		},
	    }
        }

        resp, err := sqladminService.Instances.Import(project, instance, rb).Context(ctx).Do()
        if err != nil {
                log.Fatal(err)
        }

        // レスポンスはOperationというオブジェクト型
        fmt.Printf("%#v\n", resp)
}

公式ドキュメントは下記。

Method: instances.import  |  Cloud SQL for MySQL  |  Google Cloud

未経験、異業種からIT業界に転身。フロントエンジニア。主にJavascript(React.js)をつかったWEBアプリ開発にたずさわる。
お問い合わせ、ご相談など → genpsp10@gmail.com

psp7をフォロー
プログラミング
スポンサーリンク
psp7をフォロー
ハトらぼ

コメント