¿Cómo crear una aplicación en AppHarbor? – Agregar una base de datos

Siguiendo con el post anterior donde vimos cómo crear una aplicación en AppHarbor, vamos a seguir sobre la misma temática pero enfocándonos en un punto en particular: agregar interacción con una base de datos. Generalmente cuando desarrollamos una aplicación ASP.NET MVC tenemos alguna interacción con bases de datos, independientemente del uso que necesitemos darle.

AppHarbor maneja el concepto de Add-Ons. Los mismos son agregados que podemos incluir en nuestra aplicación, algunos gratuitos y otros de pago. Las bases de datos son uno de los tipos de Add-Ons disponibles, siendo otras opciones dedicadas al monitoreo del sitio (por ejemplo New Relic), gestión de archivos multimedia, envíos de emails, entre otros.

Para gestionar los mismos vamos al portal de administración de nuestra aplicación y seleccionamos la opción “add-on catalog” ubicada en la parte inferior:

AppHarbor - InstalarAddOn
Agregar Add-On

Allí nos aparecerá el listado de todos los Add-Ons con los que podemos contar. Arriba en la derecha tendremos la opción para filtrar por el tipo que estamos buscando, para nuestro caso seleccionamos “Database“.

AppHarbor - ListadoAddOns
Listado de Add-Ons de AppHarbor

Sobre el listado filtrado podremos elegir que motor de base de datos queremos usar, además del nivel de suscripción (la mayoría cuenta con una opción gratuita, aunque sea de pocas prestaciones). Si nos mantenemos con la idea de publicar una aplicación de forma gratuita, debemos buscar algunas de las opciones que lo sean. En nuestro caso, seleccionaremos la opción “SQL Server“, y dentro del mismo seleccionamos la opción gratuita:

AppHarbor - InstalarSQLServer

Al confirmar la operación, nos aparecerá la notificación de que se ha agregado correctamente el Add-On, y ahora tendremos la opción de configurarlo en la parte inferior de la pantalla:

AppHarbor - InstalarSQLServerCorrecto

Dependiendo del estado de nuestra aplicación deberemos crear la capa de acceso a datos o utilizar la ya existente, saltándonos este paso. Como estamos haciendo una aplicación de prueba vamos a crear algo sencillo solo para tener una interacción con la base de datos. Para ello crearemos una base de datos en el entorno local de desarrollo con una tabla, y la integramos a nuestra aplicación mediante Entity Framework Database First (más información de como realizarlo en este post). Luego crearemos una acción en nuestro controlador en la cual cada vez que se acceda guarde un registro en la tabla que creamos (llamada PageAccess) y le retorne a la vista un listado de todos sus registros:

AppHarbor - AccionControladorPrueba

Realizado esto, ejecutamos la aplicación en local y luego de acceder a la página que creamos asociada al punto anterior varias veces, veremos el siguiente resultado:

AppHarbor - PruebaBDLocal
Ejecución local de la interacción con la base de datos

Efectivamente tenemos una interacción con la base de datos que nos va a servir para probar el funcionamiento. Con esto parece que tenemos todo listo para hacer un commit de nuestra aplicación con las funcionalidades de acceso a datos. Pero no es así todavía, primero debemos configurar SQL Server en AppHarbor.

Para ello nos dirigimos sobre el Add-On instalado y seleccionamos el link “Go to SQL Server“. Allí nos aparecerá una ventana con toda la información de conexión al servidor SQL, además de las opciones de configuración:

AppHarbor - ConfiguracionBD

Lo primero que vamos a hacer es seleccionar la opción “Edit database configuration“, la cual nos permitirá ingresar cual es el nombre de la cadena de conexión que tenemos definida en nuestro archivo Web.config, además de la información de metadata de Entity Framework. A diferencia de lo que haríamos en otras situaciones, en las cuales tenemos distintas versiones del archivo Web.config para cada perfil de publicación en las cuales varía la cadena de conexión, con AppHarbor debemos dejar la cadena de conexión de nuestro sitio de desarrollo y él se encargará de buscarla y reemplazarla por la adecuada para su ejecución. Puede parecer algo trivial, pero a mi criterio es una funcionalidad interesante.

AppHarbor - ConfiguracionBDCadena

Dependiendo de que enfoque de Entity Framework hayamos usado para nuestra interacción con la base de datos (Database First, Model First o Code First) cambiará lo que debemos realizar a continuación. Si usamos Model First con las migraciones sobre la base de datos, no hay nada adicional que debamos realizar. Al capturar el commit se realizarán las migraciones necesarias. Si en cambio usamos Database First, como es para este caso, debemos crear las estructuras necesarias en nuestra base de datos alojada en AppHarbor. Para ello usamos los datos de conexión que aparecen en la pantalla de configuración de la base de datos, y nos conectamos a través del SQL Management Studio, como a cualquier otro servidor:

AppHarbor - CrearTabla

Finalmente (ahora sí) llegamos al momento en el cual tenemos todo listo para hacer nuestro commit. Una vez que lo hayamos realizado, como ya vimos en el post anterior, AppHarbor realizará el proceso de publicación. Una vez finalizado el mismo, si accedemos a la página de referencia donde agregamos la lógica que inserta los registros en nuestra tabla (y accedemos varias veces para que sean varios registros) veremos que efectivamente el resultado es el esperado:

AppHarbor - PruebaBDServer

Como pudimos ver, es muy sencillo agregar una base de datos a nuestra aplicación en AppHarbor. Con tan solo realizar estas configuraciones iniciales tendremos todo funcionando de forma correcta. Y créanme que tal cual lo expliqué en este post es como realmente lo hice, no tuve un paso adicional ni que hacer algo dos veces porque daba error. Con esto ya está todo listo…

Gracias por leer!!

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s