Схема сегмента Azure. Как обновить схему сегмента в каждой базе данных

У меня есть система лазурных шардов, которая была создана много лет назад, поэтому схема шардов довольно старая в каждой базе данных. Другими словами, следующие таблицы и процедуры более старые. поэтому один из способов их обновления - удалить эту схему в каждой базе данных шарда, выполнив следующий сценарий.

DROP TABLE [__ShardManagement].[ShardMapManagerLocal]
DROP TABLE [__ShardManagement].[ShardMappingsLocal]
DROP TABLE [__ShardManagement].[ShardMapsLocal]
DROP TABLE [__ShardManagement].[ShardsLocal]

DROP PROC [__ShardManagement].[spAddShardLocal]
DROP PROC [__ShardManagement].[spBulkOperationShardMappingsLocal]
DROP PROC [__ShardManagement].[spFindShardMappingByKeyLocal]
DROP PROC [__ShardManagement].[spGetAllShardMappingsLocal]
DROP PROC [__ShardManagement].[spGetAllShardsLocal]
DROP PROC [__ShardManagement].[spGetStoreVersionLocalHelper]
DROP PROC [__ShardManagement].[spKillSessionsForShardMappingLocal]
DROP PROC [__ShardManagement].[spRemoveShardLocal]
DROP PROC [__ShardManagement].[spUpdateShardLocal]
DROP PROC [__ShardManagement].[spValidateShardLocal]
DROP PROC [__ShardManagement].[spValidateShardMappingLocal]

DROP FUNCTION [__ShardManagement].[fnGetStoreVersionMajorLocal]

а затем снова создайте шард, используя библиотеку инструментов базы данных Elastic, и он заново создаст схему базы данных. Новая схема будет обновлена.

Однако я не хочу делать это вручную для каждой базы данных шардов. Я ищу способ обновить схему, не удаляя и не создавая ее вручную. Я заглянул в библиотеку, и она не содержит таких функций.

Следующие функции в библиотеке обновляют только метаданные в сегментах, а не схему.

_shardMapManager.UpgradeGlobalStore();
 foreach(ShardLocation loc in _shardMapManager.GetDistinctShardLocations())
                {

                        _shardMapManager.UpgradeLocalStore(loc);
                }

Итак, мой вопрос: Как я могу обновить схему в каждой базе данных шарда. Я хочу обновить схему, потому что последняя клиентская библиотека Elastic 1.3.3 выдает ошибку при создании карты. Однако самая первая версия (самая старая версия 0.7) прекрасно работает с этой схемой.

0 ответов

Другие вопросы по тегам