23. April 2020
Elixir| Einstieg in Elixir und Phoenix
Installation
Erlang / Elixir
Unter Windows
Installationspakete unter Erlang / Downloads (Version 24.0) und Elixir / Downloads (Web Installer)
Erstellen einer ersten Anwendung
Anwendung mit dem Namen ‚app‘ erstellen.
Als Vorlage wird ‚live‘ werwendet. Diese vewendet Phoenix.LiveView und erleichter die Erstellung von Web Anwendungen.
<pre class="EnlighterJSRAW" data-enlighter-group="" data-enlighter-highlight="" data-enlighter-language="generic" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-theme="" data-enlighter-title="">mix phx.new --live app
Frontend erstellen
<pre class="EnlighterJSRAW" data-enlighter-group="" data-enlighter-highlight="" data-enlighter-language="generic" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-theme="" data-enlighter-title="">cd app
cd assets
<pre class="EnlighterJSRAW" data-enlighter-group="" data-enlighter-highlight="" data-enlighter-language="generic" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-theme="" data-enlighter-title="">npm install
node node_modules/webpack/bin/webpack.js --mode development
Datenbank-Instanz einrichten und starten
Elixir und Phoenix verwendet in der Standardeinstellung eine PostgreSQL Datenbanken.
Der einfachste Weg, eine lauffähige PostgrSQL Datenbank einzurichten, ist mit Hilfe von Docker.
Erstellen Sie hierzu einen Datei docker-compose.yml:
<pre class="EnlighterJSRAW" data-enlighter-group="" data-enlighter-highlight="11-13" data-enlighter-language="generic" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-theme="" data-enlighter-title="">version: '3.5'
networks:
postgres:
name: ${POSTGRES_CONTAINER:-workshop_elixir_postgres}
driver: bridge
volumes:
postgres:
name: postgres
services:
postgres:
container_name: ${POSTGRES_CONTAINER:-workshop_elixir_postgres}
image: postgres
environment:
POSTGRES_USER: ${POSTGRES_USER:-postgres}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
PGDATA: /data/postgres
volumes:
- postgres:/data/postgres
ports:
- "5432:5432"
networks:
- postgres
restart: unless-stopped
Starten Sie die Datenbank in einem eigenen Fenster mit dem nachfolgenden Kommando:
<pre class="EnlighterJSRAW" data-enlighter-group="" data-enlighter-highlight="" data-enlighter-language="generic" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-theme="" data-enlighter-title="">docker compose up
[+] Running 14/14
- db Pulled
- b4d181a07f80 Already exists
- 46ca1d02c28c Pull complete
- a756866b5565 Pull complete
- 36c49e539e90 Pull complete
- 664019fbcaff Pull complete
- 727aeee9c480 Pull complete
- 796589e6b223 Pull complete
- 6664992e747d Pull complete
- 0f933aa7ccec Pull complete
- 99b5e5d88b32 Pull complete
- a901b82e6004 Pull complete
- 625fd35fd0f3 Pull complete
- 9e37bf358a5d Pull complete
[+] Running 1/1
- Container elixis_postgres Started
Attaching to elixis_postgres
elixis_postgres | The files belonging to this database system will be owned by user "postgres".
elixis_postgres | This user must also own the server process.
...
...
...
elixis_postgres | 2021-07-12 15:01:08.042 UTC [1] LOG: database system is ready to accept connections
Datenbanktabellen erstellen
Festlegen der Datenbank-Verbindungsparameter in der Datei config/dev.exs
.
Wir verwenden dabie die gleichen Werte, die wir in der Datei docker-compose.yml
verwendet haben:
Erstellen der Datenbank-Tabellen
<pre class="EnlighterJSRAW" data-enlighter-group="" data-enlighter-highlight="" data-enlighter-language="generic" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-theme="" data-enlighter-title="">mix ecto.create
Webserver starten
<pre class="EnlighterJSRAW" data-enlighter-group="" data-enlighter-highlight="" data-enlighter-language="generic" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-theme="" data-enlighter-title="">mix phx.server
Elixir und das Web
Elixir und Datenbanken
Tips zum Erlernen von Elixir
Screencasts
- LearnElixir.tv: Great to start with this. Nice exercises.
- LearnPhoenix.tv: Best to look into after learning some Elixir.