in profiles/source_profile.go [714:772]
func (src SourceProfile) ToLegacyDriver(source string) (string, error) {
switch src.Ty {
case SourceProfileTypeFile:
{
switch strings.ToLower(source) {
case "mysql":
return constants.MYSQLDUMP, nil
case "postgresql", "postgres", "pg":
return constants.PGDUMP, nil
case "dynamodb":
return "", fmt.Errorf("dump files are not supported with DynamoDB")
default:
return "", fmt.Errorf("please specify a valid source database using -source flag, received source = %v", source)
}
}
// No need to handle unsupported streaming source specified as it is already covered during source profile creation.
case SourceProfileTypeConnection:
{
switch strings.ToLower(source) {
case "mysql":
return constants.MYSQL, nil
case "postgresql", "postgres", "pg":
return constants.POSTGRES, nil
case "dynamodb":
return constants.DYNAMODB, nil
case "sqlserver", "mssql":
return constants.SQLSERVER, nil
case "oracle":
return constants.ORACLE, nil
default:
return "", fmt.Errorf("please specify a valid source database using -source flag, received source = %v", source)
}
}
case SourceProfileTypeCloudSQL:
{
switch strings.ToLower(source) {
case "mysql":
return constants.MYSQL, nil
case "postgresql", "postgres", "pg":
return constants.POSTGRES, nil
default:
return "", fmt.Errorf("please specify a valid source database using -source flag, received source = %v", source)
}
}
case SourceProfileTypeConfig:
{
switch strings.ToLower(source) {
case constants.MYSQL:
return constants.MYSQL, nil
default:
return "", fmt.Errorf("specifying source-profile using config for non-mysql databases not implemented")
}
}
case SourceProfileTypeCsv:
return constants.CSV, nil
default:
return "", fmt.Errorf("invalid source-profile, could not infer type")
}
}