Sql Server Tool For Mac



I completely updated this article on Medium, implementing a full example on GitHub and using just Visual Studio Code. Please follow this link.

So I wanted to create the backend for a platform, and I wanted…

  • a cross platform solution, to be able to host in anywhere
  • (Microsoft) SQL Server
  • Entity Framework as ORM and for Migrations
  • to work exclusively from my Mac

To make this possible, I’m using ASP .NET Core with Entity Framework Core. For the database, I use a Docker image with Sql Server for Linux that can run on Mac.

SQL Server Data Tools Easily build, debug, maintain, and refactor databases inside Visual Studio. SQL Server Data Tools (SSDT) introduces a declarative model that spans all the phases of database development—enabling continuous integration and deployment for your databases. The SQL Database Projects extension brings project-based database development, well-known in SQL Server Data Tools (SSDT), to the cross-platform Azure Data Studio experience. From this early insiders release you can create, build, and publish a project from scratch or an existing database. RazorSQL - Query, Edit, Browse, and Manage Databases RazorSQL is an SQL query tool, database browser, SQL editor, and database administration tool for Windows, macOS, Mac OS X, Linux, and Solaris. RazorSQL has been tested on over 40 databases, can connect to databases via either JDBC or ODBC, and includes support for the following databases.

SQL Server Data Tools (SSDT) is a modern development tool for building SQL Server relational databases, databases in Azure SQL, Analysis Services (AS) data models, Integration Services (IS) packages, and Reporting Services (RS) reports.

So this is how it goes…

To setup a SQL Server with Docker, you just have to follow a few simple steps:

Install Docker

Download and install Docker for Mac.

Download the image

docker pull mcr.microsoft.com/mssql/server:2017-latest-ubuntu

Start a container

docker run -e ‘ACCEPT_EULA=Y’ -e ‘MSSQL_SA_PASSWORD=1StrongPassword!’ -p 1401:1433 –name sql1 -d microsoft/mssql-server-linux:2017-latest

Check the container is running

Sql Server Tool For Mac

sudo docker ps -a

Test the connection

I recommend SQL Operations Studio:

For

For a deeper understandment of Docker for this case, I recommend you this page.

For EntityFramework Core to work, you need an executable project in your solution. So for this demo, we just go with a simple .NET Core Console application. In VisualStudio on Mac, just go to

File – New Solution – .NET Core – App – Console Application

Sql server query tool for macData

Then you add a simple class containing two properties Id and Name.

That’s it for the example project. Now we’ll look how we create a database with a ‘Person’ table with EntityFramework Core.

Packages

For EF Core to work, you need to add just two packages. They contain all the dependencies for the other packages, and will pull them in.

  • Microsoft.EntityFrameworkCore.SqlServer
  • Microsoft.EntityFrameworkCore.Design
  • Microsoft.EntityFrameworkCore.Tools.DotNet

Actually this is the simple way of going, when you’re keeping everything inside one project. If you’re splitting your code in a data library (containing the DbContext), you ‘just’ need the Designer package in the executable, and the other package in the Data project. But let’s not worry about that right now.

DbContext

Sql Server Tool For Mac Installer

Sql Server Tool For Mac

This is the main entry point for EntityFramework Core in your project. Create a class PersonContext that inherits from DbContext, and override the method OnConfiguring to configure the connection string to the database. Also, you’ll need to define the DbSets for each class you want to store in the database as a table.

Of course there’s better ways to configure this (through the application config file), but I want to keep it as simple as possible here.

EntityFramework Core CLI

Now comes the tricky part – using EntityFramework Core to generate migrations and create/update the database automatically. For this, we have the Package Manager commands in VisualStudio on Windows. But what about Mac?

Then just open a command line, go to the project folder, and run

Microsoft Sql Server Tools For Mac

If everything is fine, you should be able to run
now – the entity framework command line interface. You should see the unicorn:

Now you can create your first migration using the command:

dotnet ef migrations add initial

(You can choose another name over ‘initial’ of course)

You can see your first migration in the project, after you refresh:

Now there is just one last step left – to execute the migration:

dotnet ef database update

Sql Server Data Tools For Mac Os

And voilá! The new database and table appear in the database!

Now you can start using all the EntityFramework Core features in your code. If you want to learn more about that, I recommend you this Pluralsight course.

Sql Server Tools For Mac

So long…

Sql Server Data Tools Macos

TAG