in tools/mconnect/commands/export/export.go [176:207]
func (c *castExporter) createTable(ctx context.Context, client *bq.Client, f *os.File) error {
source := bq.NewReaderSource(f)
source.AutoDetect = true // Allow BigQuery to determine schema.
source.SkipLeadingRows = 1 // CSV has a single header line.
loader := client.Dataset(c.datasetID).Table(c.tableID).LoaderFrom(source)
loader.LoadConfig.ColumnNameCharacterMap = bq.V1ColumnNameCharacterMap
if force {
exist, err := c.tableExist(ctx, client)
if err != nil {
return err
}
if exist {
fmt.Println(messages.ReplacingExistingTable{Name: c.tableID})
}
loader.WriteDisposition = bq.WriteTruncate
} else {
loader.WriteDisposition = bq.WriteEmpty
}
job, err := loader.Run(ctx)
if err != nil {
return err
}
status, err := job.Wait(ctx)
if err != nil {
return err
}
if err := status.Err(); err != nil {
return err
}
return nil
}