5 ms·
I'm excited about this release because it means that developers of frameworks and libraries that target SQL Server will no longer need to have Windows available
by jsmeaton 10y ago
I'm excited about this release because it means that developers of frameworks and libraries that target SQL Server will no longer need to have Windows available to test their software. As a specific example, the SQL server backend for Django could now (soon) be bundled with Django directly and enjoy the same level of support that other backends do. It'll also mean that users will be free to run Django on Linux, and use the drivers to communicate with a windows or Linux based SQL server.
I should note that Django isn't planning to add more backends to the core project, and has actually discussed moving some into separate packages. But that doesn't mean a backend couldn't be developed by the Organisation.
- boris 10y agoMicrosoft had SQL Server Native Client (ODBC) driver for Linux available for a few years now. So your could develop/test on Linux with SQL Server running in a VM. This is how we have been doing it in ODB (C++ ORM) for years. Of course, don't expect either of them to be open source. Which means an open source ORM backend that depends on them can't be in an official Debian/Ubuntu/RH repository.
- sanxiyn 10y agoIt can be in Debian contrib. As a matter of fact, libdbd-oracle-perl is in Debian contrib. Officially, Debian contrib is not Debian, but there is no practical difference.
- snuxoll 10y agoFreeTDS is "good enough" for every time I've needed to talk with SQL Server, including the various Python/Ruby/etc. drivers built on top of it. Ditto with jTDS for Java. Outside of .Net development I have never used the official Microsoft SQL Server driver.
- needusername 10y agojTDS is severely lacking in features. AFAIK it stayed on JDBC 3.0 / J2EE 1.3. This is quite outdated for for todays world an is likely going to cause issues with current frameworks and libraries.
- snuxoll 10y agoFair enough, though I haven't run into (m)any situations where the driver not supporting JDBC 4.X has caused problems. Now that Microsoft's JDBC driver is open source and on Maven Central I might switch to it, though thankfully MSSQL is starting to lose favor in my team as we become more familiar with PostgreSQL.
- electrum 10y agoThe Microsoft JDBC driver is MIT licensed: https://github.com/Microsoft/mssql-jdbc https://github.com/Microsoft/mssql-jdbc
- aseipp 10y agoAnd the TDS specification is also available (no registration needed to read the docs). So anyone can write their own freely licensed driver (much like FreeTDS). I've been thinking of writing a native Haskell port, myself, as SQL Server on Linux is so much easier to start with (SQL Server is one of the systems that has almost 0 support anywhere in our ecosystem, but I know of more than one person who'd like to see it). So while SQL server is unavailable, free client drivers will hopefully begin popping up more and more and will become accessible through e.g. Debian repositories, with time.
- codygman 10y ago> (SQL Server is one of the systems that has almost 0 support anywhere in our ecosystem, but I know of more than one person who'd like to see it). Add another to the list. I've had to resort to using hs-odbc who's forced to use freetds, meaning there are weird issues like this: https://github.com/hdbc/hdbc-odbc/issues/17 https://github.com/hdbc/hdbc-odbc/issues/17 I did find one pure haskell mssql implementation and was trying to use it here: https://github.com/hdbc/hdbc-odbc/issues/17 https://github.com/hdbc/hdbc-odbc/issues/17 Oh cool, it looks like it has commits over the past few weeks!
- userbinator 10y agoI looked at the TDS spec and it's one of the most confusingly written protocol specifications I've seen. The unusual/somewhat verbose wording, general lack of examples (except for a brief section at the end, in hexdump and XML(!?)) and overall (mis)organisation give the impression of hastily redacted internal documentation and/or deliberate attempts to discourage implementation while still being able to claim the protocol is "open".
- jsmeaton 10y agoThe SQL Server running in a VM is precisely the part you no longer have to worry about. Drive by contributors aren't going to do this when offering ORM patches. But if they have an easy way to test on Linux it becomes a lot more viable. Going back to Django, we provide a vagrant image with most databases preinstalled. Adding sqlserver to this setup will now make sense. Also Microsoft are deprecating the old bindings and are creating new ones I believe will be open source. I might be off slightly.
- toyg 10y ago> Adding sqlserver to this setup will now make sense I would strongly recommend you check SqlServer license terms first; the last thing you want is to make any of your downloaders liable for license payments as soon as they start the image. I really don't think what you suggest is possible, because you would be redistributing SqlServer - maybe with the Express version, but that was pretty crippled last time I checked.
- philliphaydon 10y agoYou must have checked back in 2010. It has like a 10gb limit. But comes with most standard features. Even full text search. (Wasn't available in 2008)
- toyg 10y agoA 10 gb limit makes it unusable for me, so that's probably why I discounted it.
- BuuQu9hu 10y agoThere is open source support for contacting MS SQL servers for many years: https://en.wikipedia.org/wiki/FreeTDS https://en.wikipedia.org/wiki/FreeTDS
- wmccullough 10y agoI too am excited for this, along with the rest of their movement towards adding support for Linux. I know I'll be a die hard C# guy forever (though I still can't help but enjoy learning other tech), but I want a non-windows option. I'd add that though it's nice to have SQL Server on Linux, I'm still waiting for them to make DocumentDB an on-premise installable package. For many people heavily invested in SQL, it is the only tool in their toolbox. Having a Microsoft supported NoSQL option would only help people invested in the Microsoft stack of products. I hate to be cliche, but when you know only SQL, every data problem looks like a SQL nail to be hit with your SQL hammer.
- meetbhagdev 10y agoTo see how you can use Django via Django-pyodbc-azure(and other frameworks like Laravel, Express.js etc.) with SQL Server check out the tutorials here: https://www.microsoft.com/en-us/sql-server/developer-get-started https://www.microsoft.com/en-us/sql-server/developer-get-sta... You can connect to SQL Server from Windows, Linux and Mac using Python, Node.js, PHP, Java and C#. This includes integration with frameworks like Django, Laravel, Entity Frameworks, Hibernate etc.