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 13:02] enrique_mieza_sanchez [Afegint una BD PostgreSQL] |
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 ===== | ===== Preparant el nostre projecte Django per a deplegament a Heroku ===== | ||
Línia 18: | Línia 20: | ||
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 '' | ||
+ | |||
+ | <file txt Procfile> | ||
+ | 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 | ||
\\ | \\ | ||
Línia 28: | Línia 44: | ||
del DATABASES[' | 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 settings.py ==== | ||
De forma que ens quedarà un arxiu: | De forma que ens quedarà un arxiu: | ||
Línia 42: | Línia 63: | ||
#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. | ||
\\ | \\ | ||
Línia 47: | Línia 81: | ||
===== 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 que si volem afegir una BD Postgre, la nostra aplicació disposarà de les credencials a la variable d' | + | Hem vist en el tutorial |
+ | $ heroku addons: | ||
+ | la nostra aplicació disposarà de les credencials a la variable d' | ||
DATABASE_URL=postgres:// | DATABASE_URL=postgres:// | ||
- | Per tal de poder configurar | + | <WRAP important> |
- | - Utilitzar el [[https:// | + | En versions anteriors calia configurar |
- | - Utilitzar el [[https:// | + | |
+ | 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 | ||
+ | i arrencar Django. Quan trobi la variable farà un override del què digui DATABASES i agafarà '' | ||
+ | </ | ||
+ | |||
+ | |||
+ | \\ | ||