Das Docker-Image erstellen mit:
docker build --pull -t biso docker/dev
docker run -d --name=biso --env="GITLAB_USER=XXXXXX" --env="GITLAB_PASSWORD=XXXXX" --volume="/PATH_TO_YOUR_BISO_REPO:/var/www/html" -v /PATH_TO_YOUR_HOME/.netrc:/root/.netrc biso:latest
Nach dem git clone des Repositories sind folgende Schritte auszuführen für eine lauffähige Entwicklungsumgebung:
# Alle Schritte sind in oben gezeigtem Docker-Container auszuführen:
$ docker exec -ti biso bash
(docker) $ npm run setup-dev
(docker) $ npm run dev
Während der Entwicklung muss die Frontend-Sencha-Applikation gebuildet werden. Dazu stehen zwei NPM-Scripts zur Verfügung:
$ docker exec -ti biso bash
# Dev-Build:
(docker) $ cd webroot/public/
(docker) $ npm run dev
# Dev-Build, mit Watch:
(docker) $ npm run watch
Dies bildet sowohl die JavaScript-Libraries mit Webpack (index.js, resp. als build-Artefakt: main.js), und
führt sencha app build development für die Sencha App aus.
Die Jobs können auch separat ausgeführt werden:
cd webroot/public && npm run webpack-devcd webroot/public && npm run sencha-devcd webroot/public && npm run sencha-watchEin Production-Build des ExtJS Frontend wird folgendermassen erstellt:
(docker) $ npm run build
Ein kompletter Build-Export (komplettes Webroot, ready für die Installation beim Kunden) wird folgendermassen erstellt:
(docker) $ grunt export
Dabei wird ein Export-Folder unter export/[version] erstellt. Dieser Folder kann beim Kunden installiert werden.
Datenbank-Migrationen werden in DB-Migration-Scripten eingetragen, unterstützt vom gaia-Kommando gaia migration:
Es werden KEINE DDL-Statements mehr direkt auf der DB ausgeführt!
(z.B. Create table, drop column, create index etc...)
1. Migration-Script erstellen:
$ npm run migration-create "[Beschreibung]"
--> es wird ein Migrations-Script erstellt in webroot/db_migrations/[Zeitstempel]-[Beschreibung].sql. In diesem Script wird nun das DDL-Statement geschrieben.
2. Ausführen der Migration:
$ npm run migration-exec
3. Migrationsscript in Repository einchecken
Das Migrationsscript ist ebenfalls Teil des Quellcodes und wird ins Repo eingecheckt.
DDLs, welche ebenfalls als "Quellcode" auf der DB existieren (Views, Stored Procedures etc.) müssen als repeatable migration erstellt werden:
1. Repeatable Migration-Script erzeugen:
$ npm run migration-create-repeatable [objekt-name]
z.B.:
$ npm run migration-create-repeatable v_benutzer
Es wird in File R_[objektname].sql angelegt.
2. View in R_[objektname].sql beschreiben
Achtung: Dieses File muss MEHRMALS ausgeführt werden können! Erstellt die DDLs also REPEATABLE (z.B.: DROP VIEW IF EXISTS ....; CREATE VIEW....;)
3. Ausführen der Migration
$ npm run migration-exec
4. Repeatable-Migrationsscript in Repository einchecken
Das Migrationsscript ist ebenfalls Teil des Quellcodes und wird ins Repo eingecheckt.
Nach einem git pull sollten Entwickler anstehende Migrationen ausführen:
$ npm run migration-exec
Die noch offenen Migrationsscripte werden auf der DB abgespielt.
Config::set('db_migration_dir','pfad/zum/db-migrations-dir'): Hier werden die Migrationsskripte abgelegt und gesucht.Config::set('db_migrations_conn','main'): Der Name der DB-Verbindung, die für die Migrationen genutzt wirdConfig::set('db_migrations_table','schema_migrations'): Der Tabellenname der Migrations-Tabelle in der Datenbank