6. Heroku

6.1. Tworzenie aplikacji w oparciu o platformę Heroku

  • Tworzenie aplikacji
  • Storage
  • Cache
  • Bazy danych

6.1.1. Set up

heroku login

6.1.2. Prepare the app

git clone https://github.com/heroku/python-getting-started.git
cd python-getting-started

6.1.3. Deploy the app

heroku create
git push heroku master
heroku ps:scale web=1

6.1.4. View logs

heroku logs --tail

6.1.5. Define a Procfile

web: gunicorn gettingstarted.wsgi --log-file -
web: python manage.py runserver 0.0.0.0:5000

6.1.6. Scale the app

heroku ps
heroku ps:scale web=0
heroku ps:scale web=1

6.1.7. Declare app dependencies

  • requirements.txt

6.1.8. Run the app locally

heroku local web -f Procfile.windows
heroku local web

6.1.9. Push local changes

git commit -am "Changes"
git push heroku master

6.1.10. Provision add-ons

heroku addons:create papertrail
heroku addons
heroku addons:open papertrail

6.1.11. Start a console

heroku run python manage.py shell
heroku run bash

6.1.12. Define config vars

heroku config:set TIMES=2
heroku config

6.1.13. Provision a database

heroku addons
heroku config
heroku pg
heroku pg:psql

6.2. Backup

6.2.1. Create

heroku pg:backups:capture

6.2.2. Schedule

heroku pg:backups:schedule DATABASE_URL --at '02:00 UTC'
heroku pg:backups:unschedule DATABASE_URL
heroku pg:backups:schedules

6.2.3. Download

heroku pg:backups:url b001
heroku pg:backups:url
heroku pg:backups:download

6.2.4. Status

heroku pg:backups
heroku pg:backups:info b001

6.2.5. Delete

heroku pg:backups:delete b101

6.2.6. Restore

heroku pg:backups:restore b101 DATABASE_URL
heroku pg:backups:restore 'https://s3.amazonaws.com/me/items/mydb.dump' DB_URL

6.2.7. Visibility

heroku pg:psql -c "select * from pg_stat_activity where application_name = 'heroku-postgres-backups'"

6.3. Buildpack

  • co to?
  • do czego to służy?
  • jak to robić?

6.4. Zadania

6.4.1. Uruchamianie aplikacji

  • Ściągnij repozytorium:

  • Załóż konto na Heroku

  • Stwórz nową aplikację

  • Dodaj remote Heroku do lokalnego repozytorium GIT

  • Uruchom aplikację na Heroku

  • Uruchom polecenie na platformie w cloud:

python manage.py migrate
  • Zrób dump bazy danych