[TFS] Supprimer en masse les dépendances à SQL Enterprise ou Developer avant de procéder à une migration

Contrairement à ce que laisse croire une rumeur venue d’un autre âge, TFS n’a pas besoin de SQL Server Enterprise pour s’exécuter. Par contre, si la personne qui a installé pour la première fois le TFS de votre équipe a une l’idée d’utiliser un SQL Server Enterprise (ou Developer), vous pouvez avoir des problèmes pour migrer. Que ce soit pour un upgrade, ou un déplacement de base de données, votre TFS peut réclamer une édition Enterprise de SQL Server.

Le problème n’est pas nouveau et bien connu : Des fonctionnalités de l’édition Enterprise sont activées sur vos bases. Il suffit de les désactiver. Si vous vous documentez un peu, vous découvrirez que la fonctionnalité en question est la compression.

Tombant plus souvent que je ne le voudrais sur ce problème, j’ai codé il y a quelques années ce petit script SQL. Celui-ci parcourt la liste de vos bases de données et désactive la compression.

Quand on a beaucoup de collections, ce script est bien utile :

-- Déclarations
declare 
 @DataBase sysname

-- Crusor pour aller chercher les bases de données
declare databases_cursor cursor for
select db.name
from sys.databases as db
where db.name like 'tfs_%';

open databases_cursor

-- Passer à la base suivante
fetch next from databases_cursor into @DataBase

while @@FETCH_STATUS=0
begin
    -- Changement de propriétaire
    exec('exec [' + @DataBase + '].dbo.prc_EnablePrefixCompression @online = 0, @disable = 1');

    -- Passer à la base suivante
    fetch next from databases_cursor into @DataBase
end

close databases_cursor
deallocate databases_cursor

Pensez à changer la clause « where db.name like 'tfs_%' » si vos bases de données ne sont pas préfixées par « tfs_ »

Fléau d’une époque que je pensais révolue.

Jérémy Jeanson

Comments

You have to be logged in to comment this post.