La instalación y configuración que vamos a realizar puede servir no solo para django sino también para otros accesos mediante odbc .
Lo que necesitamos es :
1.- freetds y el la libreria unix ODBC
2.- el paquete django-pyodbc-azure
Instalamos el odbc:
Centos:
# yum install unixODBC unixODBC-devel libtool-ltdl libtool-ltdl-devel
Debian:
# apt-get install unixODBC unixODBC-dev
luego el freetds :
Centos;
#yum install freetds
Debian:
#apt-get install freetds
Debemos configurar los dos componentes que instalamos , primero lo haremos con FreeTDS. La ruta por default es ; /etc/freetds.conf agregamos al final del archivo lo siguiente;
[mssql_freetds]
host = IP o Nombre del Sql Server
port = 1433
tds version = 8.0
Luego debemos configurar el odbcinst, su ruta por default es: /etc/odbcinst.ini vamos a agregar al final del archivo :
[driver_freetds]
Description = ODBC for Microsoft SQL
Driver = /usr/lib64/libtdsodbc.so
Setup = /usr/lib64/libtdsS.so
UsageCount = 1
-----------------------------EXTRA -------------------------
las rutas de las librerías pueden variar de versión de S.O como de distribución, sino sabes donde esta puedes ocupar algunos comandos (siempre con root):
-- actualizamos el cache
# updatedb
--para buscar donde esta el driver:
# locate libtdsodbc.so
--para buscar donde esta la librería de setup:
# locate libtdsS.so
te darán una pequeña ayuda en donde pueden estar las librerías.
------------------------------------------------------------------
Seguimos, ahora nos falta configurar el odbc,que esta en la ruta por default : /etc/odbc.ini ,para este caso presta atención a los nombre en colores, agregamos las siguientes lineas al final del archivo :
[mssql_freetds_django]
Driver = driver_freetds
ServerName = mssql_freetds
Database = DataBaseAconectar
TDS_Version =8.0
Si te fijas hemos definido el Driver "driver_freetds" que configuramos en /etc/odbcinst.ini y en ServerName definimos el "mssql_freetds" que definimos en /etc/freetds.conf ahora hacemos una pequeña prueba , en donde colocamos el usuario y contraseña de la base a la cual nos queremos conectar :
# isql -v mssql_freetds_django usuario password
deberían obtener una salida similar a :
Ahora ha django 1.7 !, para comenzar hay que instalar el paquete django-pyodbc-azure , con pip por ejemplo :
pip install django-pyodbc-azure
una vez que haya instalados , nos vamos a el settings.py de nuestra aplicación y modificamos la siguiente configuración :
DATABASES = {
'default': {
'NAME': 'DataBaseAconectar',
'ENGINE': 'sql_server.pyodbc',
'HOST': 'mssql_freetds',
'USER': 'usuario',
'PASSWORD': 'password',
'PORT': '1433', .
'OPTIONS': {
'driver': 'driver_freetds',
'dns':'mssql_freetds_django',
'MARS_Connection': True,
},
}
}
he resaltado con colores las configuraciones, para que tengas aún más claro que ocurre. Si te das cuenta en 'HOST' no va una ip tampoco un nombre de maquina, sino mas bien la configuración que hicimos en /etc/freetds.conf
Ya pueden acceder a su base de datos Sql server !!
Fuentes :
http://stackoverflow.com/questions/18232386/freetds-working-but-odbc-cannot-connect
https://github.com/michiya/django-pyodbc-azure
http://www.perlmonks.org/?node_id=1008467
No hay comentarios:
Publicar un comentario