102 lines
2.6 KiB
Plaintext
102 lines
2.6 KiB
Plaintext
---
|
|
title: Backend Befehle
|
|
---
|
|
|
|
## Nützliche Befehle
|
|
|
|
Diese Befehle sollten aus dem Verzeichnis packages/twenty-server ausgeführt werden.
|
|
Von jedem anderen Verzeichnis aus können Sie `npx nx {command} twenty-server` (oder `npx nx run twenty-server:{command}`) verwenden.
|
|
|
|
### Erstmalige Einrichtung
|
|
|
|
```
|
|
npx nx database:reset twenty-server # setup the database with dev seeds
|
|
```
|
|
|
|
### Server starten
|
|
|
|
```
|
|
npx nx run twenty-server:start
|
|
```
|
|
|
|
### Lint
|
|
|
|
```
|
|
npx nx run twenty-server:lint # --fix übergeben, um Lint-Fehler zu beheben
|
|
```
|
|
|
|
### Test
|
|
|
|
```
|
|
npx nx run twenty-server:test:unit # Unit-Tests ausführen
|
|
npx nx run twenty-server:test:integration # Integrationstests ausführen
|
|
```
|
|
|
|
Hinweis: Sie können `npx nx run twenty-server:test:integration:with-db-reset` ausführen, falls Sie die Datenbank zurücksetzen müssen, bevor Sie die Integrationstests durchführen.
|
|
|
|
### Datenbank zurücksetzen
|
|
|
|
Wenn Sie die Datenbank zurücksetzen und seeden möchten, können Sie den folgenden Befehl ausführen:
|
|
|
|
```bash
|
|
npx nx run twenty-server:database:reset
|
|
```
|
|
|
|
### Migrationen
|
|
|
|
#### Für Objekte in Core/Metadata-Schemas (TypeORM)
|
|
|
|
```bash
|
|
npx nx run twenty-server:typeorm migration:generate src/database/typeorm/core/migrations/nameOfYourMigration -d src/database/typeorm/core/core.datasource.ts
|
|
```
|
|
|
|
#### Für Arbeitsbereichsobjekte
|
|
|
|
Es gibt keine Migrationsdateien, Migrationen werden automatisch für jeden Arbeitsbereich generiert,
|
|
in der Datenbank gespeichert und mit diesem Befehl angewendet
|
|
|
|
```bash
|
|
npx nx run twenty-server:command workspace:sync-metadata -f
|
|
```
|
|
|
|
<Warning>
|
|
Dadurch wird die Datenbank gelöscht und die Migrationen sowie das Seeding erneut ausgeführt.
|
|
|
|
Stellen Sie sicher, dass Sie alle Daten sichern, die Sie aufbewahren möchten, bevor Sie diesen Befehl ausführen.
|
|
</Warning>
|
|
|
|
## Technologie-Stack
|
|
|
|
Twenty verwendet in erster Linie NestJS für das Backend.
|
|
|
|
Prisma war das erste ORM, das wir verwendeten. Um Benutzern die Möglichkeit zu geben, benutzerdefinierte Felder und Objekte zu erstellen, war eine niedrigere Ebene sinnvoller, da wir eine feinkörnige Kontrolle benötigen. Das Projekt verwendet jetzt TypeORM.
|
|
|
|
So sieht der Tech-Stack jetzt aus.
|
|
|
|
**Kern**
|
|
|
|
* [NestJS](https://nestjs.com/)
|
|
* [TypeORM](https://typeorm.io/)
|
|
* [GraphQL Yoga](https://the-guild.dev/graphql/yoga-server)
|
|
|
|
**Datenbank**
|
|
|
|
* [Postgres](https://www.postgresql.org/)
|
|
|
|
**Externe Integrationen**
|
|
|
|
* [Sentry](https://sentry.io/welcome/) zum Verfolgen von Fehlern
|
|
|
|
**Tests**
|
|
|
|
* [Jest](https://jestjs.io/)
|
|
|
|
**Tools**
|
|
|
|
* [Yarn](https://yarnpkg.com/)
|
|
* [ESLint](https://eslint.org/)
|
|
|
|
**Entwicklung**
|
|
|
|
* [AWS EKS](https://aws.amazon.com/eks/)
|