Una de las razones por de haber escrito los tutoriales de
virtualenv para windows y
virtualenv para linux es para usarlos como punto de partida en este tutorial aporte sobre heroku.
¿Que es heroku?
Heroku es una plataforma como servicio (PaaS) en la nube que soporta varios lenguajes de programación.
Requisitos previos- Conocimiento en python
- Conocimiento en el framework en este caso django
- Conocimiento basico sobre git
- virtualenv + pip
- Cuenta en heroku.com (es gratis)
Instalando Heroku toolbelt
Para instalar heroku toolbelt ve a la pagina
https://toolbelt.heroku.com/ la instalación es muy simple. Ya sea en windows o linux.
Creando entorno virtual
En la ruta de su proyecto ejecuten el siguiente comando para crear un entorno virtual.
No olviden activarlo
Código:
$ source venv/bin/activate
Instalando dependencias
Código:
(venv)$ pip install django
Configurando base de datos
Primero necesitas instalar algunas dependencias:
Código:
(venv)$ pip install psycopg2 dj-database-url
Al final de tu archivo
settings.py puedes poner el siguiente código para configurar tu base de datos en heroku.
Código Python:
Ver originalimport dj_database_url
DATABASES['default'] = dj_database_url.config()
Heroku te ofrece por defecto una base de datos PostgreSQL con un limite de 10,000 registros. Con la posibilidad de aumentar el limite a cambio de un pequeño pago.
Configurando Procfile
Procfile es un mecanizmo para declarar que comandos son ejecutados por los dynos en tu app.
Para esto tienes que crear un archivo de texto llamado
Procfile con el siguiente contenido:
Código:
web: python manage.py runserver 0.0.0.0:$PORT --noreload
Creando requirements.txt
Una vez instalado todos paquetes necesario para correr tu app, es necesario que crees un archivo llamado
requirements.txt para que heroku pueda instalar todos los paquetes necesarios.
Para hacer esto hacemos simplemente:
Código:
(venv)$ pip freeze > requirements.txt
Creando .gitignore .gitignore es un archivo de texto plano donde por cada linea puedes poner un patrón a ignorar una vez que tengamos el repositorio.
Usualmente el contenido de mi .gitignore es:
Pero ustedes pueden añadir mas reglas si lo requieren.
Iniciando repositorio
Una vez hecho todo lo anterior podemos crear nuestro repositorio (no realmente el orden no importa, siempre y cuando sepas que estas haciendo).
Código:
git init # Iniciamos el repositorio
git add . # Añadirmos todos los archivos al indice
git commit -m 'Initial Commit' # Hago el primer commit, para guardar todos los cambios
Creando app en heroku
Este paso solo se hace la primera vez.
Esto crea una app en heroku y te añade el remote de la app a tu repositorio.
Llevando a produccion
Una vez que tengas todo funcionando llevas a produccion tu app haciendo un push al remote heroku.
Sincronizando base de datos
Una vez que tu app este en la nube, puedes sincronizar tu base de datos con:
Código:
heroku run python manage.py syncdb
Nota final:
Heroku es un PaaS poderoso pero te restringe (por buenas razones) de hacer ciertas operaciones especialmente con la escritura de archivos.