fixing test and throwing rror for multi db dir flag

This commit is contained in:
James Cor
2022-07-12 17:00:25 -07:00
parent 278b2b3ebb
commit 3455828f2b
3 changed files with 29 additions and 11 deletions
+6 -2
View File
@@ -149,6 +149,7 @@ func (cmd SqlCmd) ArgParser() *argparser.ArgParser {
ap.SupportsString(messageFlag, "m", "saved query description", "Used with --query and --save, saves the query with the descriptive message given. See also --name")
ap.SupportsFlag(BatchFlag, "b", "Use to enable more efficient batch processing for large SQL import scripts consisting of only INSERT statements. Other statements types are not guaranteed to work in this mode.")
ap.SupportsString(DataDirFlag, "", "directory", "Defines a directory whose subdirectories should all be dolt data repositories accessible as independent databases within. Defaults the the current directory.")
ap.SupportsString(MultiDBDirFlag, "", "directory", "Defines a directory whose subdirectories should all be dolt data repositories accessible as independent databases within. Defaults the the current directory.")
ap.SupportsString(CfgDirFlag, "", "directory", "Defines a directory that contains configuration files for dolt. Defaults to $data-dir/.doltcfg.")
ap.SupportsFlag(continueFlag, "c", "Continue running queries on an error. Used for batch mode only.")
ap.SupportsString(fileInputFlag, "", "input file", "Execute statements from the file given")
@@ -194,7 +195,6 @@ func (cmd SqlCmd) Exec(ctx context.Context, commandStr string, args []string, dE
var dataDir string
dataDirSpecified := false
if multiDbDir, ok := apr.GetValue(MultiDBDirFlag); ok {
cli.PrintErrln("WARNING: --multi-db-dir is deprecated, use --data-dir instead")
dataDir = multiDbDir
dataDirSpecified = true
}
@@ -750,7 +750,7 @@ func validateSqlArgs(apr *argparser.ArgParseResults) error {
}
}
if save && dataDir || multiDbDir {
if save && (dataDir || multiDbDir) {
return errhand.BuildDError("Invalid Argument: --data-dir queries cannot be saved").Build()
}
@@ -773,6 +773,10 @@ func validateSqlArgs(apr *argparser.ArgParseResults) error {
}
}
if multiDbDir {
cli.PrintErrln("WARNING: --multi-db-dir is deprecated, use --data-dir instead")
}
return nil
}
+11 -1
View File
@@ -173,6 +173,14 @@ func (cmd SqlServerCmd) Exec(ctx context.Context, commandStr string, args []stri
return startServer(newCtx, cmd.VersionStr, commandStr, args, dEnv, controller)
}
func validateSqlServerArgs(apr *argparser.ArgParseResults) error {
_, multiDbDir := apr.GetValue(commands.MultiDBDirFlag)
if multiDbDir {
cli.PrintErrln("WARNING: --multi-db-dir is deprecated, use --data-dir instead")
}
return nil
}
func startServer(ctx context.Context, versionStr, commandStr string, args []string, dEnv *env.DoltEnv, serverController *ServerController) int {
ap := SqlServerCmd{}.ArgParser()
help, _ := cli.HelpAndUsagePrinters(cli.CommandDocsForCommandString(commandStr, sqlServerDocs, ap))
@@ -181,6 +189,9 @@ func startServer(ctx context.Context, versionStr, commandStr string, args []stri
dEnv.Config.SetFailsafes(env.DefaultFailsafeConfig)
apr := cli.ParseArgsOrDie(ap, args, help)
if err := validateSqlServerArgs(apr); err != nil {
return 1
}
serverConfig, err := GetServerConfig(dEnv, apr)
if err != nil {
@@ -273,7 +284,6 @@ func getCommandLineServerConfig(dEnv *env.DoltEnv, apr *argparser.ArgParseResult
dataDirSpecified := false
if dataDir, ok := apr.GetValue(commands.MultiDBDirFlag); ok {
dbNamesAndPaths, err := env.DBNamesAndPathsFromDir(dEnv.FS, dataDir)
cli.PrintErrln("WARNING: --multi-db-dir is deprecated, use --data-dir instead")
if err != nil {
return nil, errors.New("failed to read databases in path specified by --data-dir. error: " + err.Error())
+12 -8
View File
@@ -207,9 +207,10 @@ teardown() {
rm -rf inner_db
}
@test "sql: dolt sql -q specify data directory dolt repo" {
@test "sql: dolt sql -q specify data directory outside of dolt repo" {
# remove files
rm -rf datadir
rm -rf .doltcfg
rm -rf new_repo
# initialize data directory and inner dbs
@@ -231,30 +232,33 @@ teardown() {
dolt init
cd ..
# save data path
DATADIR=$(pwd)
cd ..
# initialize new repo
mkdir new_repo
cd new_repo
run dolt sql --data-dir=$BATS_TEST_DIRNAME/datadir -q "show databases"
run dolt sql --data-dir=$DATADIR -q "show databases"
[ $status -eq 0 ]
[[ $output =~ "db1" ]] || false
[[ $output =~ "db2" ]] || false
[[ $output =~ "db3" ]] || false
run dolt sql --data-dir=$BATS_TEST_DIRNAME/datadir -q "create user new_user"
run dolt sql --data-dir=$DATADIR -q "create user new_user"
[ $status -eq 0 ]
run dolt sql --data-dir=$BATS_TEST_DIRNAME/datadir -q "use db1; select user from mysql.user"
run dolt sql --data-dir=$DATADIR -q "use db1; select user from mysql.user"
[ $status -eq 0 ]
[[ $output =~ "new_user" ]] || false
run dolt sql --data-dir=$BATS_TEST_DIRNAME/datadir -q "use db2; select user from mysql.user"
run dolt sql --data-dir=$DATADIR -q "use db2; select user from mysql.user"
[ $status -eq 0 ]
[[ $output =~ "new_user" ]] || false
run dolt sql --data-dir=$BATS_TEST_DIRNAME/datadir -q "use db3; select user from mysql.user"
run dolt sql --data-dir=$DATADIR -q "use db3; select user from mysql.user"
[ $status -eq 0 ]
[[ $output =~ "new_user" ]] || false
@@ -266,10 +270,10 @@ teardown() {
[[ $output =~ "new_repo" ]] || false
! [[ $output =~ ".doltcfg" ]] || false
run ls datadir
run ls -a datadir
[[ $output =~ ".doltcfg" ]] || false
run ls datadir/.doltcfg
run ls -a datadir/.doltcfg
[[ $output =~ "privileges.db" ]] || false
# remove files