写在前面:
整个配置把坑踩得七七八八花了一整天的时间,包括sqlserver的版本,django的包的依赖和限制等,最后实现了在linux下的django远程连接部署在阿里云上的sqlserver。
有些问题国内博客讲的不够清楚或者个根本查询不到相关信息,很容易导致新手在配置过程中走弯路。所以推荐大家多用stackoverflow去查找问题,同时也一定要注意某个包或者软件的官方文档说明。
本次记录只是简单把整个配置的流程理一下,保证大家大方向不会出现错误,具体的实现细节没有记录,可以自行查阅相关文章。
1.linux中安装Python
2.安装django和相关依赖
这里会出现第一个大坑,就是
依赖的版本问题
在django-pyodbc的官方文档中可以看到,只支持django的1.4到1.10的版本,最新出来的django2.x和django3都无法适配,所以首先要保证安装的djang在相应范围内。
pip3 install django-pyodbc
pip3 install django==1.9
同时要求阿里云中的sqlserve只能为2012及以下的版本。
在django-pyodbc-azure的官方文档中可以看到,最新的版本是依赖于django2.x的,所以本次配置中无法使用最新版,这里我选择的是依赖于Django1.9.12的azure。
pip3 install django-pyodbc-azure==1.9.12.0
其余的一些包:
pip3 install django-crontab django-mssql django-pytds django-sqlserver
3.在阿里云的windows server下安装sqlserver2012的版本
这步做完过后,就可以通过本地的SSMS远程连接阿里云中的sqlserver数据库了。
4.linux下安装ODBC
博客地址:https://stackoverflow.com/questions/53075330/using-freetds-with-django
5.成功
参考博客1:https://stackoverflow.com/questions/53075330/using-freetds-with-django
参考博客2:https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-2017#13.1
参考博客3:https://stackoverflow.com/questions/53075330/using-freetds-with-django