2013-12-11 3 views
0

데이터베이스 프로젝트를 상속 받았습니다.배포 전 스크립트가 게시 스크립트에 포함되어 있지 않습니다.

테이블 및 st 프로 시저에 대한 많은 create 문이 있습니다. 외래 키가없는 모든 테이블이 있습니다.

테이블의 외래 키를 만들 때 내가 게시 할 때 이 생성되었지만 이 생성되지만 데이터가 깨끗하지 않아서 게시하는 동안 오류가 발생합니다.

는 내가 사전 배포 스크립트를 (= PreDeploy을 빌드 작업) 할 수 있음을 발견 그래서 거기에 외부 키

delete from [AccountBalance] where UserId not in (select userid from [user]) 

을 지원하는 라인을 추가하지만 출판 스크립트를 생성 할 때이 없다.

왜?

는 업데이트 프로젝트 코드를 보내기

<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> 
    <PropertyGroup> 
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> 
    <SSDTExists Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets')">True</SSDTExists> 
    <VisualStudioVersion Condition="'$(SSDTExists)' == ''">10.0</VisualStudioVersion> 
    <IncludeSchemaNameInFileName>False</IncludeSchemaNameInFileName> 
    <TargetFrameworkProfile /> 
    </PropertyGroup> 
    <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> 
    <PropertyGroup> 
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 
    <SccProvider>SAK</SccProvider> 
    <SccAuxPath>SAK</SccAuxPath> 
    <SccLocalPath>SAK</SccLocalPath> 
    <SccProjectName>SAK</SccProjectName> 
    <UpgradedFromDBP>True</UpgradedFromDBP> 
    <Name>dbpProjectName</Name> 
    <SchemaVersion>2.0</SchemaVersion> 
    <ProjectVersion>4.1</ProjectVersion> 
    <ProjectGuid>{f43cbd44-bbab-48f6-949d-47c9042bb406}</ProjectGuid> 
    <DSP>Microsoft.Data.Tools.Schema.Sql.Sql100DatabaseSchemaProvider</DSP> 
    <OutputType>Database</OutputType> 
    <RootPath> 
    </RootPath> 
    <SccProvider>SAK</SccProvider> 
    <SccAuxPath>SAK</SccAuxPath> 
    <SccLocalPath>SAK</SccLocalPath> 
    <SccProjectName>SAK</SccProjectName> 
    <UpgradedFromDBP>True</UpgradedFromDBP> 
    <RootNamespace>dbpProjectName</RootNamespace> 
    <PostUpgradeAddToSCC>;C:\Users\travis\Documents\FR\Projects\Fr\Trunk\Fr.Database\Fr.Database.sqlproj;C:\Users\travis\Documents\FR\Projects\Fr\Trunk\Fr.Database\Connections.txt</PostUpgradeAddToSCC> 
    <SccProvider> 
    </SccProvider> 
    <SccAuxPath> 
    </SccAuxPath> 
    <SccLocalPath> 
    </SccLocalPath> 
    <SccProjectName> 
    </SccProjectName> 
    <UpgradedFromDBP>True</UpgradedFromDBP> 
    <AssemblyName>dbpProjectName</AssemblyName> 
    <ModelCollation>1033, CI</ModelCollation> 
    <DefaultFileStructure>BySchemaAndSchemaType</DefaultFileStructure> 
    <DeployToDatabase>True</DeployToDatabase> 
    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> 
    <TargetLanguage>CS</TargetLanguage> 
    <AppDesignerFolder>Properties</AppDesignerFolder> 
    <SqlServerVerification>False</SqlServerVerification> 
    <TargetDatabaseSet>True</TargetDatabaseSet> 
    </PropertyGroup> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
    <OutputPath>bin\Release\</OutputPath> 
    <BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName> 
    <TreatWarningsAsErrors>False</TreatWarningsAsErrors> 
    <DebugType>pdbonly</DebugType> 
    <Optimize>true</Optimize> 
    <DefineDebug>false</DefineDebug> 
    <DefineTrace>true</DefineTrace> 
    <ErrorReport>prompt</ErrorReport> 
    <WarningLevel>4</WarningLevel> 
    </PropertyGroup> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
    <BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName> 
    <TreatWarningsAsErrors>false</TreatWarningsAsErrors> 
    <DebugSymbols>true</DebugSymbols> 
    <DebugType>full</DebugType> 
    <Optimize>false</Optimize> 
    <DefineDebug>true</DefineDebug> 
    <DefineTrace>true</DefineTrace> 
    <ErrorReport>prompt</ErrorReport> 
    <WarningLevel>4</WarningLevel> 
    </PropertyGroup> 
    <!-- VS10 without SP1 will not have VisualStudioVersion set, so do that here --> 
    <PropertyGroup /> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Integration|AnyCPU' "> 
    <OutputPath>bin\Debug\</OutputPath> 
    <BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName> 
    <TreatWarningsAsErrors>false</TreatWarningsAsErrors> 
    <DebugSymbols>true</DebugSymbols> 
    <DebugType>full</DebugType> 
    <Optimize>false</Optimize> 
    <DefineDebug>true</DefineDebug> 
    <DefineTrace>true</DefineTrace> 
    <ErrorReport>prompt</ErrorReport> 
    <WarningLevel>4</WarningLevel> 
    </PropertyGroup> 
    <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" /> 
    <ItemGroup> 
    <Folder Include="Properties" /> 
    <Folder Include="Cleanup Scripts" /> 
    <Folder Include="Pre-Deploy" /> 
    <Folder Include="Post-Deploy" /> 
    </ItemGroup> 
    <ItemGroup> 
    <Folder Include="Change Scripts" /> 
    <Folder Include="Create Scripts" /> 
    <Folder Include="Data" /> 
    <Folder Include="Functions" /> 
    <Folder Include="Queries" /> 
    <Folder Include="Views" /> 
    <Folder Include="Properties" /> 
    </ItemGroup> 
    <ItemGroup> 
    <Build Include="Create Scripts\AccountBalance.sql" /> 
    <Build Include="Create Scripts\AccountTransaction.sql" /> 
    <Build Include="Create Scripts\ActivityType.sql" /> 
    <Build Include="Create Scripts\Bl.sql" /> 
    <Build Include="Create Scripts\Butter.sql" /> 
    <Build Include="Create Scripts\ButterStash.sql" /> 
    <Build Include="Create Scripts\ButterTransfer.sql" /> 
    <Build Include="Create Scripts\City.sql" /> 
    <Build Include="Create Scripts\Contact.sql" /> 
    <Build Include="Create Scripts\Fan.sql" /> 
    <Build Include="Create Scripts\Friend.sql" /> 
    <Build Include="Create Scripts\Fr.sql" /> 
    <Build Include="Create Scripts\FrLevel.sql" /> 
    <Build Include="Create Scripts\FrLevelQuestion.sql" /> 
    <Build Include="Create Scripts\FrLevelQuestionResult.sql" /> 
    <Build Include="Create Scripts\FrLevelStatus.sql" /> 
    <Build Include="Create Scripts\FrMessage.sql" /> 
    <Build Include="Create Scripts\FrPlayer.sql" /> 
    <Build Include="Create Scripts\FrPlayerStatus.sql" /> 
    <Build Include="Create Scripts\FrQuestion.sql" /> 
    <Build Include="Create Scripts\FrStatus.sql" /> 
    <Build Include="Create Scripts\Invite.sql" /> 
    <Build Include="Create Scripts\InviteSource.sql" /> 
    <Build Include="Create Scripts\InviteType.sql" /> 
    <Build Include="Create Scripts\Lookup.sql" /> 
    <Build Include="Create Scripts\Message.sql" /> 
    <Build Include="Create Scripts\MessageActivity.sql" /> 
    <Build Include="Create Scripts\MessageRecipient.sql" /> 
    <Build Include="Create Scripts\MessageType.sql" /> 
    <Build Include="Create Scripts\PasswordReset.sql" /> 
    <Build Include="Create Scripts\Prize.sql" /> 
    <Build Include="Create Scripts\PrizeType.sql" /> 
    <Build Include="Create Scripts\TransactionType.sql" /> 
    <Build Include="Create Scripts\User.sql" /> 
    <Build Include="Create Scripts\UserActivity.sql" /> 
    <Build Include="Create Scripts\UserAlternateCountryRequest.sql" /> 
    <Build Include="Create Scripts\UserLogin.sql" /> 
    <Build Include="Create Scripts\UserMedia.sql" /> 
    <Build Include="Create Scripts\UserValidation.sql" /> 
    <NotInBuild Include="Data\ActivityType.sql" /> 
    <NotInBuild Include="Data\ButterValues.sql" /> 
    <NotInBuild Include="Data\CityValues.sql" /> 
    <NotInBuild Include="Data\LookupValues.sql" /> 
    <NotInBuild Include="Data\User_TestData.sql" /> 
    <Build Include="Functions\fn_GetDisplayName.sql" /> 
    <Build Include="Functions\fn_ListToTable.sql" /> 
    <Build Include="Queries\AccountBalanceGet.sql" /> 
    <Build Include="Queries\AccountTransactionCreate.sql" /> 
    <Build Include="Queries\AccountTransactionHasCreditPurchase.sql" /> 
    <Build Include="Queries\BlCreate.sql" /> 
    <Build Include="Queries\BlGetLatest.sql" /> 
    <Build Include="Queries\BlsGet.sql" /> 
    <Build Include="Queries\ButterGet.sql" /> 
    <Build Include="Queries\ButterGetAll.sql" /> 
    <Build Include="Queries\ButterMostPopularGet.sql" /> 
    <Build Include="Queries\ButterStashCreate.sql" /> 
    <Build Include="Queries\ButterStashDelete.sql" /> 
    <Build Include="Queries\ButterStashGet.sql" /> 
    <Build Include="Queries\ButterTransferCreate.sql" /> 
    <Build Include="Queries\ButterTransferGet.sql" /> 
    <Build Include="Queries\CitySearchByName.sql" /> 
    <Build Include="Queries\FanCreate.sql" /> 
    <Build Include="Queries\FanDelete.sql" /> 
    <Build Include="Queries\FanSearch.sql" /> 
    <Build Include="Queries\FansGet.sql" /> 
    <Build Include="Queries\FansOfUserGet.sql" /> 
    <Build Include="Queries\FansOfUserSearch.sql" /> 
    <Build Include="Queries\FriendCreate.sql" /> 
    <Build Include="Queries\FriendDelete.sql" /> 
    <Build Include="Queries\FriendSearch.sql" /> 
    <Build Include="Queries\FriendSearchByName.sql" /> 
    <Build Include="Queries\FriendsGet.sql" /> 
    <Build Include="Queries\FrCreate.sql" /> 
    <Build Include="Queries\FrDelete.sql" /> 
    <Build Include="Queries\FrGet.sql" /> 
    <Build Include="Queries\FrGetAll.sql" /> 
    <Build Include="Queries\FrGetLevelExpired.sql" /> 
    <Build Include="Queries\FrLevelCreate.sql" /> 
    <Build Include="Queries\FrLevelGet.sql" /> 
    <Build Include="Queries\FrLevelIsComplete.sql" /> 
    <Build Include="Queries\FrLevelQuestionClear.sql" /> 
    <Build Include="Queries\FrLevelQuestionCreate.sql" /> 
    <Build Include="Queries\FrLevelQuestionResultUpsert.sql" /> 
    <Build Include="Queries\FrLevelStatusUpdate.sql" /> 
    <Build Include="Queries\FrLevelUpdate.sql" /> 
    <Build Include="Queries\FrMessageCreate.sql" /> 
    <Build Include="Queries\FrMessageDelete.sql" /> 
    <Build Include="Queries\FrMessageGet.sql" /> 
    <Build Include="Queries\FrMessagesGet.sql" /> 
    <Build Include="Queries\FrPlayerAdd.sql" /> 
    <Build Include="Queries\FrPlayerRemove.sql" /> 
    <Build Include="Queries\FrPlayerUpdate.sql" /> 
    <Build Include="Queries\FrQuestionGetAll.sql" /> 
    <Build Include="Queries\FrStart.sql" /> 
    <Build Include="Queries\FrUpdate.sql" /> 
    <Build Include="Queries\FrUpdateFringle.sql" /> 
    <Build Include="Queries\InviteCreate.sql" /> 
    <Build Include="Queries\InviteDelete.sql" /> 
    <Build Include="Queries\InviteDeleteByUserId.sql" /> 
    <Build Include="Queries\InviteGet.sql" /> 
    <Build Include="Queries\InviteGetAll.sql" /> 
    <Build Include="Queries\InviteGetByFrId.sql" /> 
    <Build Include="Queries\InviteGetByUserId.sql" /> 
    <Build Include="Queries\InviteGetSentAll.sql" /> 
    <Build Include="Queries\InviteUpdateAssociateEmailToUserId.sql" /> 
    <Build Include="Queries\InviteUpdateInviteStatus.sql" /> 
    <Build Include="Queries\InviteUpdateUserId.sql" /> 
    <Build Include="Queries\LookupsGet.sql" /> 
    <Build Include="Queries\MessageCreate.sql" /> 
    <Build Include="Queries\MessageDelete.sql" /> 
    <Build Include="Queries\MessageGet.sql" /> 
    <Build Include="Queries\MessageRecipientActionUpdate.sql" /> 
    <Build Include="Queries\MessageRecipientUpdate.sql" /> 
    <Build Include="Queries\MessagesGet.sql" /> 
    <Build Include="Queries\MessagesGetSent.sql" /> 
    <Build Include="Queries\MessageThreadGet.sql" /> 
    <Build Include="Queries\MessageUnreadCountGet.sql" /> 
    <Build Include="Queries\PasswordResetCreate.sql" /> 
    <Build Include="Queries\PasswordResetDelete.sql" /> 
    <Build Include="Queries\PasswordResetGet.sql" /> 
    <Build Include="Queries\PrizeGet.sql" /> 
    <Build Include="Queries\PrizesGet.sql" /> 
    <Build Include="Queries\UserActivityCreate.sql" /> 
    <Build Include="Queries\UserActivityForRelatedUsersGet.sql" /> 
    <Build Include="Queries\UserActivityGet.sql" /> 
    <Build Include="Queries\UserAlternateCountryRequestCreate.sql" /> 
    <Build Include="Queries\UserBrowse.sql" /> 
    <Build Include="Queries\UserCreate.sql" /> 
    <Build Include="Queries\UserFrNameExists.sql" /> 
    <Build Include="Queries\UserGet.sql" /> 
    <Build Include="Queries\UserGetByEmail.sql" /> 
    <Build Include="Queries\UserHasBeenFrer.sql" /> 
    <Build Include="Queries\UserLoginInsert.sql" /> 
    <Build Include="Queries\UserMediaDelete.sql" /> 
    <Build Include="Queries\UserMediaGet.sql" /> 
    <Build Include="Queries\UserMediaList.sql" /> 
    <Build Include="Queries\UserMediaUpsert.sql" /> 
    <Build Include="Queries\UserPasswordUpdate.sql" /> 
    <Build Include="Queries\UserProfileGet.sql" /> 
    <Build Include="Queries\UserProfileUpdate.sql" /> 
    <Build Include="Queries\UserSearch.sql" /> 
    <Build Include="Queries\UserUpdate.sql" /> 
    <Build Include="Queries\UserValidationGet.sql" /> 
    <Build Include="Queries\UserValidationGetByUserId.sql" /> 
    <Build Include="Views\UserSummaryView.sql" /> 
    <Build Include="Create Scripts\MessageTypeGroup.sql" /> 
    <None Include="Data\MessageTypeGroup.sql" /> 
    <Build Include="Queries\UserGetByFbId.sql" /> 
    <PreDeploy Include="Pre-Deploy\Script.PreDeployment1.sql" /> 
    </ItemGroup> 
    <ItemGroup> 
    <None Include="Data\Prize.sql" /> 
    <None Include="Data\PrizeType.sql" /> 
    <None Include="Data\TransactionType.sql" /> 
    <None Include="Cleanup Scripts\CleanFrRelatedTables.sql" /> 
    <None Include="Data\FrLevelStatus.sql" /> 
    <None Include="Data\FrPlayerStatus.sql" /> 
    <None Include="Data\FrQuestion.sql" /> 
    <None Include="Data\FrStatus.sql" /> 
    <None Include="Data\InviteSource.sql" /> 
    <None Include="Data\InviteType.sql" /> 
    <None Include="Data\MessageActivity.sql" /> 
    <None Include="Data\MessageType.sql" /> 
    <None Include="Data\FrReminderTypeValues.sql" /> 
    <None Include="Fr.DevDatabase.publish.xml" /> 
    <None Include="Fr.IntegrationDatabase.publish.xml" /> 
    <None Include="Pre-Deploy\Script1.sql" /> 
    </ItemGroup> 
    <ItemGroup> 
    <Build Include="Create Scripts\Feedback.sql" /> 
    <Build Include="Queries\FeedbackCreate.sql" /> 
    <Build Include="Create Scripts\FrReminder.sql" /> 
    <Build Include="Create Scripts\FrReminderType.sql" /> 
    <Build Include="Queries\FrReminderCreate.sql" /> 
    <Build Include="Queries\FrReminderUpdate.sql" /> 
    <Build Include="Queries\FrReminderDelete.sql" /> 
    <Build Include="Queries\FrReminderUpdateUserId.sql" /> 
    <Build Include="Queries\FrReminderGetPendingWarnings.sql" /> 
    <Build Include="Queries\FrReminderGetPendingExpiries.sql" /> 
    <Build Include="Queries\BlsFromFriendsGet.sql" /> 
    <Build Include="Create Scripts\Counter.sql" /> 
    <Build Include="Queries\CounterGet.sql" /> 
    <Build Include="Queries\CounterSet.sql" /> 
    <Build Include="Queries\UserActivityHide.sql" /> 
    <Build Include="Queries\BlDelete.sql" /> 
    <Build Include="Create Scripts\UserBl.sql" /> 
    <Build Include="Queries\UserBlGet.sql" /> 
    <Build Include="Queries\UserBlCreate.sql" /> 
    <Build Include="Queries\UserBlDelete.sql" /> 
    <Build Include="Queries\BlGet.sql" /> 
    <Build Include="Queries\AccountTransactionGetByFr.sql" /> 
    </ItemGroup> 
    <ItemGroup> 
    <RefactorLog Include="Fr.Database.refactorlog" /> 
    </ItemGroup> 
</Project> 
+1

.sqlproj 파일을 공유하거나 추가 정보를 제공하지 않으면 실패하는 이유는 명확하지 않습니다. 여기에 표시 한 테이블 및 사전 배포 스크립트를 사용하여 프로젝트를 생성하여이를 재현하려고 시도했으며 배포 전 스크립트가 게시 스크립트에 성공적으로 포함되었습니다. 빌드 작업을 다시 확인하고 프로젝트 파일이 저장되었는지 확인할 수 있습니까? PreDeployment 스크립트는 게시 할 때 항상 포함되어야하므로 여기에서 무엇이 잘못되는지 명확하지 않습니다. –

+0

프로젝트 파일이 추가되었습니다. – Cherven

+0

프로젝트 파일이 정상적으로 보입니다. 프로젝트와 동일한 폴더 구조로 재현하려고했지만 여전히 잘못된 것을 찾을 수 없습니다. 몇 가지 생각 : - 작년에 발표 된 SSDT의 한 버전에는 일부 빌드에서 생성 된 사전 배포 스크립트의 일부가 손실되는 문제가있었습니다. 최신 버전으로 업데이트하십시오. - 생성 된 dacpac의 predeployment 스크립트에 사전 배포 스크립트가 포함되어 있는지 확인하십시오. $ (ProjectName) \ bin \ Debug \ ProjectName.dacpac으로 이동하고 이름을 .zip으로 바꾸고 내용을 추출하십시오. "predeploy.sql"파일에는 모든 사전 배포 스크립트가 들어 있어야합니다. 그것이 없으면, 뭔가 잘못되었습니다 –

답변

1

당신은

이것은 아마 당신의 문제가 무엇인지 알아 ...하지만 난 단지 약 20 분 동안 이것에 의해 난처한 상황에 빠진있어 그것은 밝혀 어리석은 일 (VS)은 실제 물건의 외부에서 이러한 것들을 적용하지 않습니다. ("규칙에 따라"빌드 스크립트를 가져와 자동으로 스크립트를 게시 스크립트에 추가해야합니다 ...

그래서 나와 같은 사람이라면 지금까지 "구성 관리자"의 중요성을 깨닫지 못했을 것입니다. 어떤 이유에서든이 항목에서 (dtabase 프로젝트)이 "BUILD"를 확인하지 않았을 것입니다 구성 (DEBUG/RELEASE)을 수행하면 스크립트가 생성되지만 배포 전/후 스크립트는 포함되지 않습니다.

출력 창이 모두 사라지면 놓치기 쉬운 메시지입니다. 솔루션의 다른 많은 프로젝트!

누군가를 도울 수 있기 때문에 어쨌든이 글을 게시하십시오.

+0

이것은 내가 찾고있는 대답이었습니다. 사전 배포 스크립트에 대한 업데이트가 게시 된 스크립트로 푸시되지 않았습니다. 프로젝트를 재 구축하거나 빌드 구성을 업데이트하면이 문제가 해결되었습니다. –

관련 문제