Схема сегмента 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) прекрасно работает с этой схемой.