lightning: fix missing configurable keyspace name (#43685)

close pingcap/tidb#43684
This commit is contained in:
zzm
2023-05-12 10:58:21 +08:00
committed by GitHub
parent 3e4538da5d
commit 2ba3400a34
2 changed files with 7 additions and 3 deletions

View File

@ -550,7 +550,8 @@ func (l *Lightning) run(taskCtx context.Context, taskCfg *config.Config, o *opti
var keyspaceName string
if taskCfg.TikvImporter.Backend == config.BackendLocal {
if taskCfg.TikvImporter.KeyspaceName == "" {
keyspaceName = taskCfg.TikvImporter.KeyspaceName
if keyspaceName == "" {
keyspaceName, err = getKeyspaceName(db)
if err != nil {
o.logger.Warn("unable to get keyspace name, lightning will use empty keyspace name", zap.Error(err))

View File

@ -63,11 +63,12 @@ func TestRun(t *testing.T) {
path, _ := filepath.Abs(".")
ctx := context.Background()
db, mock, err := sqlmock.New()
logger, buffer := log.MakeTestLogger()
require.NoError(t, err)
o := &options{
promRegistry: lightning.promRegistry,
promFactory: lightning.promFactory,
logger: log.L(),
logger: logger,
db: db,
}
cfgCheckpoint := config.Config{
@ -91,10 +92,12 @@ func TestRun(t *testing.T) {
cfgKeyspaceName.Checkpoint = cfgCheckpoint.Checkpoint
err = lightning.run(ctx, cfgKeyspaceName, o)
require.EqualError(t, err, "[Lightning:Checkpoint:ErrUnknownCheckpointDriver]unknown checkpoint driver 'invalid'")
require.Contains(t, buffer.String(), `"acquired keyspace name","keyspaceName":""`)
err = lightning.run(ctx, cfgKeyspaceName, o)
cfgKeyspaceName.TikvImporter.KeyspaceName = "test"
err = lightning.run(ctx, cfgKeyspaceName, o)
require.EqualError(t, err, "[Lightning:Checkpoint:ErrUnknownCheckpointDriver]unknown checkpoint driver 'invalid'")
require.Contains(t, buffer.String(), `"acquired keyspace name","keyspaceName":"test"`)
require.NoError(t, mock.ExpectationsWereMet())
err = lightning.run(ctx, &config.Config{