lightning: fix missing configurable keyspace name (#43685)
close pingcap/tidb#43684
This commit is contained in:
@ -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))
|
||||
|
||||
@ -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{
|
||||
|
||||
Reference in New Issue
Block a user