54 lines
824 B
Markdown
54 lines
824 B
Markdown
# Sindri
|
|
|
|
## Zweck
|
|
|
|
- Erstellung von Datenmodell-Skripten in verschiedenen Ausgabeformaten (MySQL, SQLite, …) auf Basis einer abstrakten Beschreibung
|
|
|
|
|
|
## Erstellung
|
|
|
|
### Voraussetzungen
|
|
|
|
- Typescript-Compiler
|
|
- GNU Make
|
|
|
|
|
|
### Anweisungen
|
|
|
|
- `tools/build` ausführen
|
|
|
|
|
|
## Dokumentation
|
|
|
|
Beispiel-Nutzung:
|
|
|
|
```sh
|
|
tools/build
|
|
cd build
|
|
cat ../doc/examples/contacts.sindri.json | ./sindri -f database:sqlite
|
|
```
|
|
|
|
… erzeugt:
|
|
|
|
```sql
|
|
CREATE TABLE
|
|
`address`(
|
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
`city` VARCHAR(255) NOT NULL,
|
|
`zip` VARCHAR(255) NOT NULL,
|
|
`street` VARCHAR(255) NOT NULL
|
|
)
|
|
;
|
|
|
|
CREATE TABLE
|
|
`person`(
|
|
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
`prename` VARCHAR(255) NOT NULL,
|
|
`surname` VARCHAR(255) NOT NULL,
|
|
`address_id` INTEGER NOT NULL,
|
|
`email_address` VARCHAR(255) DEFAULT NULL
|
|
)
|
|
;
|
|
```
|
|
|