Skip to content
Lukáš Rod edited this page Aug 12, 2019 · 20 revisions

Další odkazy

Užitečné příkazy

yarn/pipenv

yarn pipenv
yarn outdated pipenv update --outdated
yarn add/remove/upgrade [package | package@version], --dev přepínač, yarn upgrade-interactive [--latest] pipenv install/uninstall/update [ | pkg], --dev přepínač
yarn install pipenv install, --dev přepínač
--- aktivace virt. prostředí: pipenv shell

HEROKU

  • vytvoření uživatele: heroku run python manage.py createsuperuser --settings=up.production_settings -a uspesnyprvnacek
  • připojení k DB z externí aplikace - je potřeba přidat do URI na konec ?sslmode=require
  • kopírování DB mezi aplikacemi:
    • stagingtesting: heroku pg:copy uspesnyprvnacek-staging::DATABASE_URL DATABASE_URL --confirm uspesnyprvnacek-testing -a uspesnyprvnacek-testing
  • naplánování pravidelné zálohy DB: heroku pg:backups:schedule DATABASE_URL --at "03:00 Europe/Prague" -a uspesnyprvnacek
    • výpis záloh: heroku pg:backups -a uspesnyprvnacek
  • upgrade PostgreSQL: (heroku docs)
    • všechny příkazy nutné doplnit -a uspesnyprvnacek-testing/uspesnyprvnacek-staging/uspesnyprvnacek
    1. vytvoření nové DB (trvá několik minut): heroku addons:create heroku-postgresql:hobby-dev
    2. maintanance mode aktivace (aby nikdo nic nezapsal): heroku maintenance:on
    3. přenos dat ze staré (DATABASE_URL) do nové DB (HEROKU_POSTGRESQL_COLOR): heroku pg:copy DATABASE_URL HEROKU_POSTGRESQL_COLOR
    4. nastavení nové DB jako primární: heroku pg:promote HEROKU_POSTGRESQL_COLOR
    5. deaktivace maintanance mode: heroku maintenance:off
  • CZ řazení - viz heroku dokumentace a příslušný soubor s migrací

testování

V případě problémů při UI testování lze pořídit screenshot

import time
filename = time.strftime("%Y%m%d-%H%M%S")
context.browser.save_screenshot(f'{filename}.png')

Ten se pak dá ve vzdáleném terminálu zobrazit díky TerminalImageViewer.

Manuální spuštění produkce na vývojovém prostředí

  1. v souboru .env nastavíme MANUAL_PRODUCTION=True
  2. yarn install (z kořenového adresáře – automaticky se pak provede i build)
  3. přes manage.py spustit:
    1. collectstatic --settings=up.production_settings --noinput
    2. runserver --settings=up.production_settings 0.0.0.0:8000

Poznámka: otevření aplikace na jiném zařízení v síti

Aplikace je připravena také na zobrazení z dalších zařízeních v síti (např. z mobilního telefonu). Obvykle je potřeba provést tyto 2 kroky:

  1. povolit Python a Node.js ve firewallu (např. na chvíli aktivovat interaktivní režim ESETu),
  2. na mobilním zařízení zadat privátní IP adresu počítače, na kterém běží server (zobrazí se např. při spouštění webpack-dev-serveru)

⚠️ Pro připojení je výhodnější použít hostname, pokud se zařízení se serverem např. přepojí z Wi-Fi na Etherent, musela by se samozřejmě měnit v telefonu IP adresa (webpack-dev-server není potřeba restartovat, protože je závislý na hostname).


Import a export dat v PostgreSQL na Windows

⚠️ Je potřeba mít v PATH vloženo C:\Program Files\PostgreSQL\11\bin.

  • export dat aplikace z DB: > pg_dump --table "^admin_*" --data-only --dbname up -U postgres > sample_data.pgsql
  • smazání tabulek s daty aplikace v DB:
    > psql -U postgres --dbname up
    up=# TRUNCATE TABLE admin_application, admin_course, admin_group, admin_lecture, admin_membership, admin_client, admin_attendancestate, admin_attendance CASCADE;
    up=# exit
  • import dat aplikace do DB: > psql --dbname up -U postgres -f scripts/sql/sample_data.pgsql

Další příkazy

  • zobrazení obsahu zipu: unzip -l frontend.zip
Clone this wiki locally