Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
django_heroku [2022/02/21 12:49] enrique_mieza_sanchez |
django_heroku [2022/03/07 18:30] (actual) enrique_mieza_sanchez [Afegint una BD PostgreSQL] |
||
---|---|---|---|
Línia 2: | Línia 2: | ||
Heroku és un sistema de **PaaS o //Platform as a Service//** que ens permet posar en producció aplicacions sense necessitat de mantenir la virtualització, | Heroku és un sistema de **PaaS o //Platform as a Service//** que ens permet posar en producció aplicacions sense necessitat de mantenir la virtualització, | ||
+ | |||
+ | {{ https:// | ||
{{tag> #FpInfor #Daw #DawMp08 #DawMp08Uf2 # | {{tag> #FpInfor #Daw #DawMp08 #DawMp08Uf2 # | ||
- | {{ responsibilities.png }} | + | {{ responsibilities.png? |
+ | |||
+ | ===== Preparant el nostre projecte Django per a deplegament a Heroku ===== | ||
Referències: | Referències: | ||
- | * https:// | + | |
+ | | ||
+ | * Tutorial per iniciar una app Django amb una plantilla: | ||
+ | * https:// | ||
Per treballar amb Django a Heroku ens caldrà alguns ajustos extra a part del què ens diu el tutorial oficial. | Per treballar amb Django a Heroku ens caldrà alguns ajustos extra a part del què ens diu el tutorial oficial. | ||
Instal·lar en local llibreries de client per a PostgreSQL: | Instal·lar en local llibreries de client per a PostgreSQL: | ||
- | $ sudo apt install libpq-dev | + | $ sudo apt install libpq-dev |
(env) $ pip install gunicorn psycopg2-binary django-heroku | (env) $ pip install gunicorn psycopg2-binary django-heroku | ||
(env) $ pip freeze > requirements.txt | (env) $ pip freeze > requirements.txt | ||
+ | Crearem un '' | ||
- | #https:// | + | <file txt Procfile> |
- | #settings.py: | + | web: gunicorn mysite.wsgi |
+ | </ | ||
+ | |||
+ | No és imprescindible, | ||
+ | (env) $ gunicorn mysite.wsgi | ||
+ | |||
+ | Si ho teniu tot a punt **a la branca main**, podeu posar en producció fent: | ||
+ | $ git add . | ||
+ | $ git commit -am " | ||
+ | $ git push heroku main | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ==== Troubleshooting ==== | ||
+ | De vegades ens apareix un error de SSL al fer el //push// a producció. [[https:// | ||
+ | del DATABASES[' | ||
+ | |||
+ | Si no esteu **a la branca main** potser no funciona adequadament. Mireu de moure els arxius de producció a la branca main. | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ==== Ajustant | ||
+ | De forma que ens quedarà un arxiu: | ||
+ | |||
+ | <file python settings.py> | ||
+ | # importem django_heroku | ||
import django_heroku | import django_heroku | ||
- | # Activate | + | # ...resta del config.py... |
+ | |||
+ | # activem | ||
django_heroku.settings(locals()) | django_heroku.settings(locals()) | ||
- | #si dona error ssl https:// | + | |
+ | # si dona error ssl https:// | ||
#del DATABASES[' | #del DATABASES[' | ||
+ | </ | ||
+ | \\ | ||
+ | |||
+ | ===== Utilitzant SQLite ===== | ||
+ | |||
+ | Per defecte podem provar a arrencar amb SQLite: | ||
+ | $ git push heroku master | ||
+ | (...es posa en producció...) | ||
+ | $ heroku run bash | ||
+ | ~ $ python3 manage.py migrate | ||
+ | ~ $ python3 manage.py createsuperuser | ||
+ | |||
+ | Això crearà la BD, un superuser, i ens permetrà accedir a la nostra aplicació en producció. Entreu i afegiu alguna enquesta. | ||
+ | |||
+ | \\ | ||
===== Afegint una BD PostgreSQL ===== | ===== Afegint una BD PostgreSQL ===== | ||
- | Si posem una DB sqlite com ve per defecte en Django tindrem el problema de que al fer un nou desplegament destruirem | + | Si posem una DB sqlite com ve per defecte en Django tindrem el problema de que [[https:// |
+ | |||
+ | Hem vist en el tutorial de Heroku que si podem afegir una BD PostgreSQL així: | ||
+ | $ heroku addons: | ||
+ | |||
+ | la nostra aplicació disposarà de les credencials a la variable d' | ||
+ | DATABASE_URL=postgres:// | ||
+ | |||
+ | |||
+ | <WRAP important> | ||
+ | En versions anteriors calia configurar expressament '' | ||
+ | |||
+ | A partir de cert moment ja no cal fer cap modificació per carregar '' | ||
+ | Simplement, fem un '' | ||
+ | $ export DATABASE_URL=postgres:// | ||
+ | (env) $ ./manage.py migrate | ||
+ | (env) $ ./manage.py runserver | ||
- | Hem vist en el tutorial que si volem afegir una BD Postgre, la nostra aplicació disposarà de les credencials a la variable | + | i arrencar Django. Quan trobi la variable |
- | - Utilitzar el [[https:// | + | </WRAP> |
- | - Utilitzar el [[https:// | + | |
+ | \\ | ||