大した話では無いんですが、ドキュメントやヘルプ見てもよくわからないと思うので共有です。
エクスポート時にバケット内のフォルダ配下にエクスポートしたい場合
例えばdumpSchemas()ならこんな風に書きます。
JS > util.dumpSchemas(["test"], "home/test", {"osBucketName": "bucket-xxxxx", "osNamespace": "xxxxxx", ...)
大事なのは2個目の"home/test"のところ。
osBucketNameで指定したbucket-xxxxxのところに home > test というフォルダができ、その下にエクスポートファイル群が格納されます。
ここで/home/testなんてやると / > home > test という階層になるので注意w
インポートをバケット内の特定のフォルダ配下から行いたい場合
インポート時も同じような感じ。
JS > util.loadDump("home/test", {threads: 8, osBucketName: "bucket-xxxxx", osNamespace: "xxxxxx"...})
includeTablesやexcludeTablesでデータベース名も一緒に指定したい
loadDump()でexcludeTablesとincludeTablesというオプションがあります。
includeTablesはダンプファイルから指定されたテーブルのみをロードし、 excludeTablesは指定したテーブルをインポートから除外するものです。
しかし、
JS > util.loadDump("home/20220310", {threads: 8, osBucketName: "bucket-xxxxx", osNamespace: "xxxxxx", includeTables:["test.t1"]})
と書くと上手くインポートされません。
ERROR: [Worker000] While executing DDL script for `test`.`t1`: Unknown database 'test' ERROR: Aborting load...
が出たり、事前にtestデータベースを作っていても対象のt1テーブルは作成されないままです。
この場合、データベース名とテーブル名それぞれにバッククォートをつけてあげてください。
JS > util.loadDump("home/20220310", {threads: 8, osBucketName: "bucket-xxxxx", osNamespace: "xxxxxx", includeTables:["`test`.`t1`"]})
ドキュメント
MySQL :: MySQL Shell 8.0 :: 8.5 インスタンスダンプユーティリティ、スキーマダンプユーティリティおよびテーブルダンプユーティリティ