
This post summarizes the steps required to prepare the tools for macOS. Thanks to a curiosity-driven investigation of one of my colleagues it turns out that the complete toolchain is available now cross-platform which enables us to build and deploy DACPACs on Linux and macOS alike. Our team successfully applied the target-state deployment approach for quite a while and never saw the need for an alternative migration script-based approach (which would not have the Windows platform limitation). The reason for the latter is the lack (so far) of cross-platform tooling for building Visual Studio database projects and deploying the resulting DACPACs. In Visual Studio, unload the project, and edit it by adding this line inside the Project tag.In my day to day work as a consultant on customer projects the typical tech stack involves having a Microsoft SQL Server (MSSQL) for persistence with several ASP.NET Core web APIs on top, and a web-based UI, which nowadays I like writing in React.īeing in home office mode for several months now, I am developing on my personal MacBook Pro - in a Parallels Windows VM. sqlproj (Database Project)Īssuming that you already have an existing Visual Studio solution, with a Database project (.sqlproj file), these are the steps required to enable cross platform build: NET Standard 2.0 library, and a command line tool, sqlpackage. The underlying DacFx API is available as a. zip file), that you can use various graphical and command line tools to compare or apply ("publish") to your production databases. The database project describes the "desired state" of your database schema, and the output from the project is a. You can start from scratch with a new Database project, or import an existing database. What is a SQL Server Database project?Ī database project is a Visual Studio project type, that allows you to develop, build, test and publish your database from a source controlled project, just like you develop your application code. The new build SDK from Microsoft changes all that. sqlproj project type is based on the classic. dacpac (meaning apply it to an new or existing database) using the cross-platform version of sqlpackage.īut building a database project (.sqlproj) was only possible on Windows, as the. sqlproj project, and the Visual Studio design experience.įor a while now, it has been possible to publish a. In this post, I will describe how a new Microsoft build SDK (currently in preview) allows you to do the same, while preserving your. dacpac using dotnet build, even on Linux and Mac. A couple of years ago I blogged about a great community project that enables you to build a.
