Utveckla lagerprojekt i Visual Studio Code

Gäller för:✅ Lagerlokal i Microsoft Fabric

Lär dig hur du konfigurerar ett databasprojekt för Fabric Data Warehouse i Visual Studio Code. Du skapar ett nytt projekt, definierar schemaobjekt, bygger och validerar projektet och publicerar det i ditt lager.

Viktigt!

Den här funktionen är i förhandsversion.

Förutsättningar

Innan du börjar kontrollerar du att:

  • Ha åtkomst till ett befintligt lagerobjekt i en Fabric-arbetsyta med deltagarbehörighet eller högre.
  • Installera Visual Studio Code på din arbetsstation.
  • Installera .NET SDK för att skapa och publicera databasprojekt.
  • Installera två Visual Studio Code tillägg: SQL Database Projects och SQL Server (mssql).
    • Du kan installera nödvändiga tillägg direkt från Visual Studio Code Marketplace genom att söka efter "SQL Database Projects" eller "SQL Server (mssql)".

Skapa ett nytt databasprojekt

Du kan skapa ett databasprojekt från grunden eller från ett befintligt lager.

Alternativ 1: Skapa ett nytt databasprojekt från kommandopaletten i Visual Studio Code

  1. Öppna Visual Studio Code.

  2. Öppna kommandopaletten (Ctrl+Shift+P eller Cmd+Shift+P på Mac).

  3. Sök efter databasprojekt: Ny.

  4. Välj Database Project Type som SQL Server Database.

  5. Välj ett projektnamn och välj platsen för den lokala mappen.

  6. Välj Synapse Data Warehouse i Microsoft Fabric som målplattform.

  7. När du uppmanas till det väljer du Ja (rekommenderas) för ett SDK-projekt.

    Viktigt!

    Endast SDK-format projekt stöds för Fabric Data Warehouse.

  8. Välj Ja till frågan Vill du konfigurera SQL-projektversion som standardkonfiguration för den här mappen?

  9. Välj Ja för att lita på författarna till filerna i den här mappen.

Alternativ 2: Skapa ett nytt databasprojekt från databasprojekttillägget

  1. I Visual Studio Code väljer du tilläggsikonen Database Projects från Activity Bar.

  2. I fönstret Databasprojekt väljer du Skapa ny.

    Screenshot från Visual Studio Code som visar Databasprojekt-förlängningsfönstret och knappen Skapa ny.

  3. Välj Database Project Type som SQL Server Database.

  4. Välj ett projektnamn och välj platsen för den lokala mappen.

  5. Välj Synapse Data Warehouse i Microsoft Fabric som målplattform.

  6. När du uppmanas till det väljer du Ja (rekommenderas) för ett SDK-projekt. Endast SDK-format projekt stöds för Fabric Data Warehouse.

  7. Välj Ja till frågan Vill du konfigurera SQL-projektversion som standardkonfiguration för den här mappen?

  8. Välj Ja för att lita på författarna till filerna i den här mappen.

Alternativ 3: Skapa ett databasprojekt från ett befintligt lager

  1. Skapa först en ny anslutningsprofil för ditt lager i Visual Studio Code.

    1. Välj tillägget SQL Server i Visual Studio Code från Activity Bar.
    2. Ange ett profilnamn. Välj Parametrar.
    3. Ange servernamnet. I Fabric-portalen, i inställningarna för ditt lager, välj SQL-reťazec pripojenia och kopiera den medföljande strängen. Denna sträng är servernamnet på ditt lager och skiljer sig från SQL-analysändpunkten. Det ser ut som <server unique ID>.datawarehouse.fabric.microsoft.com.
    4. För Authentication type använder du Microsoft Entra ID – Universell med MFA-stöd. Autentisera med din Microsoft Entra ID.
    5. Ange annan information som standard eller önskad, och välj Anslut.
  2. I Visual Studio Code väljer du tilläggsikonen Database Projects i aktivitetsfältet.

  3. Välj alternativknappen ... i fönstret Databasprojekt och välj alternativet Skapa projekt från databas .

    Screenshot från Visual Studio Code som visar alternativet Skapa projekt från databas.

  4. Välj ditt lager från de befintliga anslutningsprofilerna.

  5. Ange ett projektnamn och välj en projektmapp på din arbetsstation.

  6. För mappstruktur väljer du Schema/Objekttyp (rekommenderas).

  7. För Inkludera behörigheter i projektet väljer du Nej (standard).

  8. För SDK-projekt väljer du Ja (rekommenderas).

  9. Välj Ja till frågan Vill du konfigurera SQL-projektversion som standardkonfiguration för den här mappen?

  10. Visual Studio Code extraherar projektfiler från lagerprojekt.

    Screenshot från Visual Studio Code som visar förloppsmeddelandet för extrahera projektfiler.

  11. Efter lyckad extrahering ser du följande notifikation: "Extrahera projektfiler: Lyckades. Slutförd".

  12. Välj Ja för att lita på författarna till filerna i den här mappen.

Nytt databasprojekt för ditt lager

Det nya databasprojektet för ditt lager visas på SQL Database Projects-menyn.

Screenshot från Visual Studio Code som visar det nya databasprojektet för AdventureWorksDW2022.

Projektstrukturen ser ut så här:

 | Project Name
 ├── Database References
 ├── SQLCMD Variables
 ├── .vscode/
 └── schema/
     ├── Functions
     ├── Tables
     └── Views

Konfigurera databasprojektet

  1. Högerklicka på projektet och välj Redigera .sqlproj-fil.

    Screenshot från Visual Studio Code och snabbmenyn för ett databasprojekt. Alternativet Redigera sqlproj-fil är markerat.

  2. Kontrollera att filen innehåller den senaste versionen av Microsoft. Build.Sql SDK. Till exempel ändrar du versionen från Microsoft.Build.Sql till 2.3.0 i filen .sqlproj.

       <Sdk Name="Microsoft.Build.Sql" Version="2.3.0" />
    
  3. Kontrollera den senaste versionen av Microsoft.SqlServer.Dacpacs.FabricDw och lägg till en referens i Project/ItemGroup XML-noden. Till exempel:

       <PackageReference Include="Microsoft.SqlServer.Dacpacs.FabricDw" Version="170.0.4">
           <DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
           <SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
       </PackageReference>
    

    Viktigt!

    Om du lägger till paketreferensen utan metadata för DatabaseVariableLiteralValue går det att bygga projektet, men åtgärderna sqlpackagePublish och Script kan misslyckas så snart koden refererar till objekt i schemat sys, till exempel sys.views. I så fall ser du fel som följande:

    Error SQL72033: This deployment may encounter errors during execution because [<schema>].[<procedure>] depends on [sys].[views].[schema_id] and [sys].[views].[schema_id] does not exist in the target database.

    Så här bör databasprojektet för ett lager se ut efter uppdateringarna.

     <?xml version="1.0" encoding="utf-8"?>
     <Project DefaultTargets="Build">
       <Sdk Name="Microsoft.Build.Sql" Version="2.3.0" />
       <PropertyGroup>
         <Name>DatabaseProject715wh</Name>
         <ProjectGuid>{2E278BCC-F118-4DDB-9255-94697F2930B4}</ProjectGuid>
         <DSP>Microsoft.Data.Tools.Schema.Sql.SqlDwUnifiedDatabaseSchemaProvider</DSP>
         <ModelCollation>1033, CI</ModelCollation>
       </PropertyGroup>
       <ItemGroup>
         <None Include=".vscode\tasks.json" />
         <PackageReference Include="Microsoft.SqlServer.Dacpacs.FabricDw" Version="170.0.4">
           <DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
           <SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
         </PackageReference>
       </ItemGroup>
       <Target Name="BeforeBuild">
         <Delete Files="$(BaseIntermediateOutputPath)\project.assets.json" />
       </Target>
     </Project>
    
  4. .sqlproj Spara filen. I uppmaningen att läsa in databasprojektet igen väljer du Ja.

Viktigt!

Fabric Data Warehouse-teamet släpper ofta nya versioner av NuGet-paket. Eftersom standardversionens värden i filen .sqlproj kan ändras över tid, uppdatera dem i ditt lokala projekt för att hålla dem i linje med de senaste versionerna som finns tillgängliga från NuGet för Microsoft. SqlServer.Dacpacs.FabricDw.

Lägga till eller uppdatera databasobjekt

Du kan definiera eller ändra databasobjekt som tabeller, vyer, lagrade procedurer och funktioner i ditt lagerprojekt.

Under mappen för ett schema, till exempel dbo, lägger du till eller tar bort eller gör ändringar i T-SQL-definitionerna för objekt i ditt lager. Om du vill ändra ett befintligt objekt öppnar du motsvarande .sql fil och uppdaterar definitionen efter behov.

När du skapar projektet verifieras alla nya och uppdaterade objekt och ingår i den genererade dacpac-filen i {project folder location}/bin/debug/{project name}.dacpac filen.

Ändringar som görs här är bara i databasprojektet och återspeglas inte i Microsoft Fabric förrän du Build och Publicera projektet.

Skapa och verifiera projektet

  1. Öppna databasprojektet om det inte redan är öppet.

  2. Högerklicka på projektet och välj Bygg för att bygga databasprojektet.

    Screenshot från Visual Studio Code som visar alternativet för att skapa databasprojektet.

  3. Bygget bör lyckas. Åtgärda eventuella fel baserat på meddelanden som ges i utdata från bygghändelsen.

Anmärkning

För närvarande måste din standardterminal i Visual Studio Code vara PowerShell för att byggprocessen i Database Projects-tillägget ska lyckas. I Kommandopaletten, välj Terminal: Välj Standardprofil och välj sedan PowerShell.

Publicera till Fabric Data Warehouse

När du har skapat projektet publicerar du det till mållagret. Publicering skapar ett skript för att lösa skillnaden mellan databasprojektet och det faktiska lagret och kör ett skript för att göra att lagret matchar projektet. Du kan distribuera den kompilerade modellen av lagerschemat i en .dacpac-fil till ett mållager.

  1. Högerklicka på projektet och välj Publicera.

  2. Välj Publicera på en befintlig SQL-server.

  3. För Välj publiceringsprofil som ska läsas in väljer du Använd inte profil första gången du publicerar.

    • Spara alternativ för att publicera ditt lager i en publiceringsprofil. En Visual Studio Code-notis ger dig möjlighet att spara publiceringsalternativen du använde till en publiceringsprofilfil.
    • Återanvänd publiceringsprofilen i framtiden när du publicerar ditt projekt i ditt lager. Du kan ha olika profilalternativ för olika lager eller för olika miljöer i utvecklingsmiljöerna dev/test/acceptance/production.
  4. Välj anslutningsprofilen Fabric Data Warehouse i listan.

  5. Välj namnet på mållagret.

  6. I alternativet Välj åtgärd kan du antingen generera skript för att granska skriptet innan du publicerar eller publicera projektet till ett lager. - Den första gången du vill distribuera ändringar ska du noggrant Generera skript och granska den resulterande T-SQL-koden så att den kan tillämpas på mållagret. Att generera skriptet gör inga förändringar i mållageret.

    • Om du väljer Publicera skriver processen ändringar till ditt mållager.

    Screenshot från Visual Studio Code som visar meddelandet Deploy dacpac: In progress notification.

  7. I meddelandet Vill du spara inställningarna i en profil (.publish.xml)? väljer du Ja och sparar dina publiceringsprofilval för nästa gång du behöver publicera.

Viktiga distributionsinställningar för lagerprojekt

När du distribuerar databasprojekt till Fabric Data Warehouse kontrollerar flera inställningar schemaändringar och kan påverka datasäkerheten. Använd med försiktighet.

  • BlockOnPossibleDataLoss

    • Vad den gör: Förhindrar distribution om det finns en risk för dataförlust (till exempel om du tar bort en kolumn eller tabell som innehåller data).
    • Rekommendation: Ange alltid till True i produktion för att skydda kritiska data.
    • Försiktighet: Om du ställer in den på False tillåter du distribution även om data kan gå förlorade. Använd endast i kontrollerade miljöer (till exempel dev/test).
  • DropObjectsNotInSource

    • Vad den gör: Släpper objekt i måldatabasen som inte finns i projektkällan.
    • Rekommendation: Använd i utvecklings-/testmiljöer för att rensa överblivna objekt.
    • Försiktighet: Användning DropObjectsNotInSource i produktion kan ta bort viktiga objekt och data. Dubbelkolla innan du aktiverar.
  • PreDeploy för fördistributionsskriptet

    • Vad den gör
      • Exekverar egna SQL-skript innan schema-distributionen.
    • Vanliga användningsområden
      • Arkivera eller säkerhetskopiera data innan du släpper tabeller
      • Inaktivera begränsningar eller utlösare tillfälligt
      • Rensa äldre objekt
    • Försiktighet
      • Se till att skripten är idempotenta och inte introducerar schemaändringar som krockar med distributionen.

Tip

När en distributionsprocess eller fråga är idempotent kan du köra kommandot flera gånger utan att orsaka logiska problem eller fel. Ett idempotent kommando är också skrivet på ett sätt som kan distribueras till flera databaser utan att behöva förutbestämma deras status.

  • PostDeploy för skriptet efter distributionen

    • Vad den gör: Kör anpassade SQL-skript efter schemadistributionen.
    • Vanliga användningsområden:
      • Seed-uppslag eller referensdata
      • Återaktivera begränsningar eller utlösare
      • Logg över distributionens historik
    • Varning: Undvik tunga operationer på stora bord under produktion. Se till att skripten kan köras säkert flera gånger om det behövs.

Viktigt!

Granska alltid distributionsskript och inställningar innan du publicerar. Testa först i utvecklings- eller testmiljöer för att förhindra oavsiktlig dataförlust. Mer information och exempel finns i Skript före distribution och efter distribution för Fabric Data Warehouse.

Verifiera publicering

Anslut till ditt datalager och skripta de objekt som har ändrats, eller verifiera detta genom att köra systemkatalogens objekt.