nous avons une base de données centrale et besoin de mettre à niveau notre base de données locale. Nous utilisons dacpac pour le faire. Fondamentalement, nous apportons les modifications à la base de données sur le serveur. nous créons ensuite un dacpac. Il est mis dans le package de déploiement. Lorsque le client exécute l'application, il vérifie s'il existe une nouvelle version. Si c'est le cas, il sera mis à niveau. Le problème est que nous avons. Lorsque vous effectuez des modifications de base de données locales sans mise à niveau de dacpac, cela provoque un avertissement indiquant que des modifications ont été apportées à l'exception de dacpac. Donc, quand il s'agit de mettre à jour le dacpac (fait par le biais du code vb.net), il termine le processus mais ne fait aucun changement. saute essentiellement toutDacpac ne pas mise à niveau par le code correctement
mon code est comme suit
Si _package.Version <> DatabaseVersion Puis
dacOptions.ScriptDatabaseOptions = True
dacOptions.BlockOnPossibleDataLoss = False
dacOptions.IgnoreIncrement = False
dacOptions.BlockWhenDriftDetected = False
dacOptions.RegisterDataTierApplication = True
dacOptions.IncludeTransactionalScripts = True
_service.Deploy(_package, localDB, True, dacOptions)
End If
J'ai remarqué si je vais manuellement dans SSMS et essayer de mettre à niveau. il me demande la base de données a été changé et de cliquer sur continuer malgré la perte de données possible. Si je fais cela, cela fonctionnera manuellement. mais par le code, il ne semble toujours pas mettre à niveau même si j'ai blockonpossibledataloss = false
que puis-je faire pour résoudre ce problème?