Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
ms_windows_ms_sql:nuget_replace_package_with_same_version [2022/01/10 09:40] – [Решение] admin | ms_windows_ms_sql:nuget_replace_package_with_same_version [2022/01/10 09:46] (current) – admin | ||
---|---|---|---|
Line 5: | Line 5: | ||
====== Решение ====== | ====== Решение ====== | ||
Строго говоря - серверы Nuget не разрешают заменять уже загруженные версии пакетов, | Строго говоря - серверы Nuget не разрешают заменять уже загруженные версии пакетов, | ||
- | Даже если пакет был удален с помощью nuget delete - он будет все равно доступен для скачивания, | + | Даже если пакет был удален с помощью |
- | Однако, | + | Однако, |
+ | |||
+ | ===== Скрипт для удаления всех версий заданного пакета nuget ===== | ||
< | < | ||
SELECT @PackageRegistrationKey = [Key] | SELECT @PackageRegistrationKey = [Key] | ||
Line 49: | Line 51: | ||
COMMIT TRANSACTION</ | COMMIT TRANSACTION</ | ||
+ | ===== Скрипт для удаления пакетов nuget, имена которых начинаются с заданной строки ===== | ||
+ | < | ||
+ | DECLARE @PackageRegistrationKeys table([Key] int) | ||
+ | INSERT INTO @PackageRegistrationKeys | ||
+ | SELECT [Key] FROM [NuGetGallery].[dbo].[PackageRegistrations] | ||
+ | WHERE [Id] LIKE ' | ||
+ | BEGIN TRANSACTION | ||
+ | DELETE pf | ||
+ | FROM [NuGetGallery].[dbo].[PackageFrameworks] pf | ||
+ | JOIN [NuGetGallery].[dbo].[Packages] p ON pf.[Package_Key] = p.[Key] | ||
+ | WHERE [PackageRegistrationKey] IN (SELECT [Key] FROM @PackageRegistrationKeys) | ||
+ | DELETE pa | ||
+ | FROM [NuGetGallery].[dbo].[PackageAuthors] pa | ||
+ | JOIN [NuGetGallery].[dbo].[Packages] p ON pa.[PackageKey] = p.[Key] | ||
+ | WHERE [PackageRegistrationKey] IN (SELECT [Key] FROM @PackageRegistrationKeys) | ||
+ | DELETE gs | ||
+ | FROM [NuGetGallery].[dbo].[GallerySettings] gs | ||
+ | JOIN [NuGetGallery].[dbo].[PackageStatistics] ps ON gs.[DownloadStatsLastAggregatedId] = ps.[Key] | ||
+ | JOIN [NuGetGallery].[dbo].[Packages] p ON ps.[PackageKey] = p.[Key] | ||
+ | WHERE [PackageRegistrationKey] IN (SELECT [Key] FROM @PackageRegistrationKeys) | ||
+ | DELETE ps | ||
+ | FROM [NuGetGallery].[dbo].[PackageStatistics] ps | ||
+ | JOIN [NuGetGallery].[dbo].[Packages] p ON ps.[PackageKey] = p.[Key] | ||
+ | WHERE [PackageRegistrationKey] IN (SELECT [Key] FROM @PackageRegistrationKeys) | ||
+ | DELETE pd | ||
+ | FROM [NuGetGallery].[dbo].[PackageDependencies] pd | ||
+ | JOIN [NuGetGallery].[dbo].[Packages] p ON pd.[PackageKey] = p.[Key] | ||
+ | WHERE [PackageRegistrationKey] IN (SELECT [Key] FROM @PackageRegistrationKeys) | ||
+ | DELETE | ||
+ | FROM [NuGetGallery].[dbo].[Packages] | ||
+ | WHERE [PackageRegistrationKey] IN (SELECT [Key] FROM @PackageRegistrationKeys) | ||
+ | DELETE por | ||
+ | FROM [NuGetGallery].[dbo].[PackageOwnerRequests] por | ||
+ | JOIN [NuGetGallery].[dbo].[PackageRegistrations] pr ON pr.[Key] = por.[PackageRegistrationKey] | ||
+ | WHERE pr.[Key] IN (SELECT [Key] FROM @PackageRegistrationKeys) | ||
+ | DELETE pro | ||
+ | FROM [NuGetGallery].[dbo].[PackageRegistrationOwners] pro | ||
+ | JOIN [NuGetGallery].[dbo].[PackageRegistrations] pr ON pr.[Key] = pro.[PackageRegistrationKey] | ||
+ | WHERE pr.[Key] IN (SELECT [Key] FROM @PackageRegistrationKeys) | ||
+ | DELETE FROM [NuGetGallery].[dbo].[PackageRegistrations] | ||
+ | WHERE [Key] IN (SELECT [Key] FROM @PackageRegistrationKeys) | ||
+ | COMMIT TRANSACTION</ | ||
+ | |||
+ | ===== Скрипт для удаления конкретной версии пакета nuget ===== | ||
+ | < | ||
+ | DECLARE @PackageKey int | ||
+ | SELECT @PackageKey = p.[Key] | ||
+ | FROM [Packages] p | ||
+ | JOIN [PackageRegistrations] pr ON pr.[Key] = p.[PackageRegistrationKey] | ||
+ | WHERE pr.[Id] = ' | ||
+ | AND [Version] = ' | ||
+ | |||
+ | BEGIN TRANSACTION | ||
+ | DELETE pf | ||
+ | FROM [NuGetGallery].[dbo].[PackageFrameworks] pf | ||
+ | JOIN [NuGetGallery].[dbo].[Packages] p ON pf.[Package_Key] = p.[Key] | ||
+ | WHERE p.[Key] = @PackageKey | ||
+ | DELETE pa | ||
+ | FROM [NuGetGallery].[dbo].[PackageAuthors] pa | ||
+ | JOIN [NuGetGallery].[dbo].[Packages] p ON pa.[PackageKey] = p.[Key] | ||
+ | WHERE p.[Key] = @PackageKey | ||
+ | DELETE gs | ||
+ | FROM [NuGetGallery].[dbo].[GallerySettings] gs | ||
+ | JOIN [NuGetGallery].[dbo].[PackageStatistics] ps ON gs.[DownloadStatsLastAggregatedId] = ps.[Key] | ||
+ | JOIN [NuGetGallery].[dbo].[Packages] p ON ps.[PackageKey] = p.[Key] | ||
+ | WHERE p.[Key] = @PackageKey | ||
+ | DELETE ps | ||
+ | FROM [NuGetGallery].[dbo].[PackageStatistics] ps | ||
+ | JOIN [NuGetGallery].[dbo].[Packages] p ON ps.[PackageKey] = p.[Key] | ||
+ | WHERE p.[Key] = @PackageKey | ||
+ | DELETE pd | ||
+ | FROM [NuGetGallery].[dbo].[PackageDependencies] pd | ||
+ | JOIN [NuGetGallery].[dbo].[Packages] p ON pd.[PackageKey] = p.[Key] | ||
+ | WHERE p.[Key] = @PackageKey | ||
+ | DELETE | ||
+ | FROM [NuGetGallery].[dbo].[Packages] | ||
+ | WHERE [Key] = @PackageKey | ||
+ | COMMIT TRANSACTION</ | ||
+ | |||
+ | ===== Скрипт для удаления всех версий пакета nuget ===== | ||
+ | < | ||
+ | DECLARE @PackageRegistrationKey int | ||
+ | SELECT @PackageRegistrationKey = [Key] | ||
+ | FROM [PackageRegistrations] | ||
+ | WHERE [Id] = ' | ||
+ | |||
+ | BEGIN TRANSACTION | ||
+ | DELETE pf | ||
+ | FROM [NuGetGallery].[dbo].[PackageFrameworks] pf | ||
+ | JOIN [NuGetGallery].[dbo].[Packages] p ON pf.[Package_Key] = p.[Key] | ||
+ | WHERE [PackageRegistrationKey] = @PackageRegistrationKey | ||
+ | DELETE pa | ||
+ | FROM [NuGetGallery].[dbo].[PackageAuthors] pa | ||
+ | JOIN [NuGetGallery].[dbo].[Packages] p ON pa.[PackageKey] = p.[Key] | ||
+ | WHERE [PackageRegistrationKey] = @PackageRegistrationKey | ||
+ | DELETE gs | ||
+ | FROM [NuGetGallery].[dbo].[GallerySettings] gs | ||
+ | JOIN [NuGetGallery].[dbo].[PackageStatistics] ps ON gs.[DownloadStatsLastAggregatedId] = ps.[Key] | ||
+ | JOIN [NuGetGallery].[dbo].[Packages] p ON ps.[PackageKey] = p.[Key] | ||
+ | WHERE [PackageRegistrationKey] = @PackageRegistrationKey | ||
+ | DELETE ps | ||
+ | FROM [NuGetGallery].[dbo].[PackageStatistics] ps | ||
+ | JOIN [NuGetGallery].[dbo].[Packages] p ON ps.[PackageKey] = p.[Key] | ||
+ | WHERE [PackageRegistrationKey] = @PackageRegistrationKey | ||
+ | DELETE pd | ||
+ | FROM [NuGetGallery].[dbo].[PackageDependencies] pd | ||
+ | JOIN [NuGetGallery].[dbo].[Packages] p ON pd.[PackageKey] = p.[Key] | ||
+ | WHERE [PackageRegistrationKey] = @PackageRegistrationKey | ||
+ | DELETE | ||
+ | FROM [NuGetGallery].[dbo].[Packages] | ||
+ | WHERE [PackageRegistrationKey] = @PackageRegistrationKey | ||
+ | DELETE por | ||
+ | FROM [NuGetGallery].[dbo].[PackageOwnerRequests] por | ||
+ | JOIN [NuGetGallery].[dbo].[PackageRegistrations] pr ON pr.[Key] = por.[PackageRegistrationKey] | ||
+ | WHERE [PackageRegistrationKey] = @PackageRegistrationKey | ||
+ | DELETE pro | ||
+ | FROM [NuGetGallery].[dbo].[PackageRegistrationOwners] pro | ||
+ | JOIN [NuGetGallery].[dbo].[PackageRegistrations] pr ON pr.[Key] = pro.[PackageRegistrationKey] | ||
+ | WHERE [PackageRegistrationKey] = @PackageRegistrationKey | ||
+ | DELETE FROM [NuGetGallery].[dbo].[PackageRegistrations] | ||
+ | WHERE [Key] = @PackageRegistrationKey | ||
+ | COMMIT TRANSACTION</ |