Railway.app és un PaaS similar a Heroku o altres que ens facilita la posada en producció d'aplicacions web.
Per posar en producció un app Django, però, el procés és un xic més complex que amb altres frameworks.
Referències:
Aquest tutorial de Django en Railway funciona a data de Maig de 2023 amb Django 4.2
A part de la pujada de codi que hem fet anteriorment, ens faltarà:
Per realitzar això caldrà anar a
Settings -> Build Command
I hi posarem les instruccions per a que tot funcioni:
. /opt/venv/bin/activate && mkdir static && python3 manage.py collectstatic && python3 manage.py migrate && DJANGO_SUPERUSER_USERNAME=super DJANGO_SUPERUSER_PASSWORD=P@ssw0rd python3 manage.py createsuperuser [email protected] --noinput
Això sí, un cop posat en producció, entra i posa-hi una password més segura.
Si hem fet una comanda personalitzada per crear dades amb el Faker, es pot afegir a la comanda indicada més amunt. Per exemple, si has seguit l'exercici Django Lliga pots afegir la la comanda:
python3 manage.py crea_lliga "Lliga 1a divisió"
Si encara que fem el collectstatic
no ens aparèixen els static files (css, imatges, etc.) podem forçar Django a servir-los. No és el més eficient, però per fer un desplegament de prova o de mostra pot ser una solució raonable.
Aquest post explica com servir static files amb Django.
Només cal tocar l'arxiu urls.py
i afegir la darrera línia d'aquest exemple (amb els imports pertinents):
from django.contrib import admin from django.urls import include,path from django.conf.urls.static import static from django.conf import settings from lliga.views import profile urlpatterns = [ path('admin/', admin.site.urls), path('myapp/', include('myapp.urls')), path("accounts/", include("django.contrib.auth.urls")), path("accounts/profile/", profile, name="profile"), ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)