2017-01-19 4 views
0

J'ai un projet de base de données VS2015 (sqlproj) et j'ai créé beaucoup de données de test. J'ai ajouté un paramètre au fichier PostDeploymentScript.sql et lorsque j'ai besoin d'une base de données vide, je l'ai défini comme faux et lorsque je le publie, il n'inclut pas de données de test. Lorsque j'ai besoin d'une base de données de démonstration, je l'ai définie et lorsque je publie, elle ajoute également des données de test après le déploiement. En revanche, je souhaite créer deux fichiers DACPAC différents pour empêcher le traitement manuel et les générer tous les deux automatiquement en même temps. J'ai cherché un peu et trouvé plusieurs articles comme celui-ci: http://www.techrepublic.com/blog/data-center/auto-deploy-and-version-your-sql-server-database-with-ssdt/ mais je ne pouvais pas appliquer ce qu'il a dit. Qu'est-ce que je rate?2 Fichiers DACPAC séparés pour test et production

J'ai créé un projet de base de données (presque) vide (disons Base.sqlproj) qui ajoute des données de table de recherche après le déploiement. J'ai créé un autre projet DB (Base_Plus_TestData.sqlproj) et ajouté une référence de base de données pour la première base de données. Ce dont j'ai besoin est, si le client a besoin de déployer la base de données vide, je voudrais leur donner le Base.DACPAC. Si le client a besoin de déployer une base de données de démonstration avec des données de test, je veux leur donner Base_Plus_TestData.DACPAC. Que dois-je faire à cet effet et que dois-je faire de mal?

+1

Hey Jack, quelques questions rapides - lorsque vous avez votre base de données de démonstration est le schéma exactement les mêmes, juste des données supplémentaires? Avez-vous également des données à déployer dans les deux bases de données? Enfin est-ce vous ou les clients qui l'exécutent et à quelle fréquence? –

+0

@EdElliott Le schéma est complètement identique. Les deux ont les mêmes données de recherche communes, mais DB de démonstration a également des données de client et de vente imaginaires. Disons que mon nom de produit est HappyCRM, j'aimerais créer cette DB ou l'autre comme HappyCRM non Base et Base_Plus_TestData –

Répondre

1

Il a deux options supplémentaires sur ce que vous faites déjà avec un commutateur pour inclure des données, je choisirais le premier :)

1 - Il suffit de donner aux clients qui veulent des données de démonstration d'un script à exécuter après le déploiement de la base de données (vous pouvez faire quelque chose comme utiliser une application PowerShell script /. NET pour déployer vos données et éventuellement les données)

2 - Le script de post-déploiement peut être édité dans un dacpac, vous pouvez construire votre projet, copier le dacpac et puis modifiez le script de post-déploiement pour inclure vos données sur l'un des dacpac. 3 - Créez un projet ssdt distinct qui référence votre projet de base de données principal avec une référence "même base de données" et le script post-déploiement supplémentaire - vous obtiendrez deux dacpac que vous pouvez déployer ensemble si vous voulez des données ou simplement la base de données.

Si vous avez également des données dans votre dacpac d'origine à déployer, vous devrez le copier dans le fichier "with data" dacpac.

Ed

+0

Je pense que l'option Ed donnée pour # 1 est probablement votre meilleure option. Gardez le script séparé pour remplir les données de démonstration. Appelez-le quand/si nécessaire. Vous pouvez faire le reste, mais si le schéma est identique, la création d'un projet séparé semble être trop lourde. Le mettre dans le post-déploiement va gonfler le script de déploiement un peu inutilement. –

+0

@EdElliott, Ma question n'est pas comment fournir des données de test aux clients, comment faire votre troisième option. J'ai déjà évalué les deux premières options mais mon désir est de donner à mes clients deux fichiers dacpac. Toutes les autres options nécessitent deux ou plusieurs étapes ou processus manuels. D'un autre côté, avec deux fichiers dacpac différents, ils utiliseront soit ce dacpac, soit l'autre. Pour la troisième option, j'ai déjà ajouté un nouveau projet, ajouté la référence db, sélectionné la même base de données et créé deux fichiers dacpac, mais le problème est, le nouveau fichier dacpac (avec les données de test) ne fonctionne pas correctement.Est-ce que je ne comprends pas? –