2017-03-23 19:52:39 +00:00
# typeorm-model-generator
2017-12-27 21:48:03 +00:00
[![Greenkeeper badge ](https://badges.greenkeeper.io/Kononnable/typeorm-model-generator.svg )](https://greenkeeper.io/)
2017-05-03 19:28:58 +00:00
[![Build Status ](https://travis-ci.org/Kononnable/typeorm-model-generator.svg?branch=master )](https://travis-ci.org/Kononnable/typeorm-model-generator)
[![npm version ](https://badge.fury.io/js/typeorm-model-generator.svg )](https://badge.fury.io/js/typeorm-model-generator)
2017-05-03 20:05:49 +00:00
[![codecov ](https://codecov.io/gh/Kononnable/typeorm-model-generator/branch/master/graph/badge.svg )](https://codecov.io/gh/Kononnable/typeorm-model-generator)
2017-05-03 19:28:58 +00:00
2018-01-16 22:07:35 +00:00
Generates models for TypeORM from existing databases.
2017-07-20 21:16:55 +00:00
Suported db engines:
* Microsoft SQL Server
* PostgreSQL
2017-08-14 18:28:03 +00:00
* MySQL
* MariaDB
2018-04-18 20:15:07 +00:00
* Oracle Database
2018-05-03 19:52:57 +00:00
* SQLite
2017-07-20 21:16:55 +00:00
## Installation
### Global module
To install module globally simply type `npm i -g typeorm-model-generator` in your console.
### Npx way
Thanks to npx you can use npm modules without polluting global installs. So nothing to do here :)
2018-01-16 22:07:35 +00:00
>To use `npx` you need to use npm at version at least 5.2.0. Try updating your npm by `npm i -g npm`
2018-06-17 19:30:54 +00:00
### Database drivers
All database drivers except oracle are installed by default. To use typeorm-model-generator with oracle databese you need to install driver with `npm i oracledb` and configure [oracle install client ](http://www.oracle.com/technetwork/database/database-technologies/instant-client/overview/index.html ) on your machine.
2017-07-20 21:16:55 +00:00
## Usage
```shell
Usage: typeorm-model-generator -h < host > -d < database > -p [port] -u < user > -x
[password] -e [engine]
Options:
2018-05-03 19:52:57 +00:00
--help Show help [boolean]
--version Show version number [boolean]
2018-05-05 20:09:03 +00:00
-h, --host IP adress/Hostname for database server
[default: "127.0.0.1"]
-d, --database Database name(or path for sqlite) [required]
-u, --user Username for database server
-x, --pass Password for database server [default: ""]
-p, --port Port number for database server
-e, --engine Database engine
2018-05-03 19:52:57 +00:00
[choices: "mssql", "postgres", "mysql", "mariadb", "oracle", "sqlite"]
[default: "mssql"]
2018-05-05 20:09:03 +00:00
-o, --output Where to place generated models
2018-05-03 19:52:57 +00:00
[default: "Z:\Repos\typeorm-model-generator\output"]
-s, --schema Schema name to create model from. Only for mssql and
2018-05-05 20:09:03 +00:00
postgres
2018-05-03 19:52:57 +00:00
--ssl [boolean] [default: false]
--noConfig Doesn't create tsconfig.json and ormconfig.json
2018-01-16 22:07:35 +00:00
[boolean] [default: false]
2018-05-03 19:52:57 +00:00
--cf, --case-file Convert file names to specified case
2018-01-20 00:30:47 +00:00
[choices: "pascal", "param", "camel", "none"] [default: "none"]
2018-05-03 19:52:57 +00:00
--ce, --case-entity Convert class names to specified case
2018-01-20 00:30:47 +00:00
[choices: "pascal", "camel", "none"] [default: "none"]
--cp, --case-property Convert property names to specified case
[choices: "pascal", "camel", "none"] [default: "none"]
2018-05-05 20:09:03 +00:00
--lazy Generate lazy relations [boolean] [default: false]
2018-06-17 19:30:54 +00:00
--namingStrategy Use custom naming strategy
--relationIds Generate RelationId fields [boolean] [default: false]
2018-05-05 20:09:03 +00:00
--generateConstructor Generate constructor allowing partial initialization
[boolean] [default: false]
2017-07-20 21:16:55 +00:00
```
### Examples
* Creating model from local MSSQL database
2018-01-16 22:07:35 +00:00
* Global module
2017-07-20 21:16:55 +00:00
```
2018-01-21 11:25:10 +00:00
typeorm-model-generator -h localhost -d tempdb -u sa -x !Passw0rd -e mssql -o .
2017-07-20 21:16:55 +00:00
````
2018-01-16 22:07:35 +00:00
* Npx Way
2017-07-20 21:16:55 +00:00
```
2018-01-21 11:25:10 +00:00
npx typeorm-model-generator -h localhost -d tempdb -u sa -x !Passw0rd -e mssql -o .
2017-07-20 21:16:55 +00:00
````
2017-10-15 17:16:53 +00:00
* Creating model from local Postgres database, public schema with ssl connection
2018-01-16 22:07:35 +00:00
* Global module
2017-07-20 21:16:55 +00:00
```
2018-01-21 11:25:10 +00:00
typeorm-model-generator -h localhost -d postgres -u postgres -x !Passw0rd -e postgres -o . -s public --ssl
2017-07-20 21:16:55 +00:00
````
2018-01-16 22:07:35 +00:00
* Npx Way
2017-07-20 21:16:55 +00:00
```
2018-01-21 11:25:10 +00:00
npx typeorm-model-generator -h localhost -d postgres -u postgres -x !Passw0rd -e postgres -o . -s public --ssl
2018-01-16 22:07:35 +00:00
````
2018-05-05 20:09:03 +00:00
* Creating model from SQLite database
* Global module
```
typeorm-model-generator -d "Z:\sqlite.db" -e sqlite -o .
````
* Npx Way
```
npx typeorm-model-generator -d "Z:\sqlite.db" -e sqlite -o .
````
2018-06-17 19:30:54 +00:00
## Naming strategy
If you want to generate custom names for properties in generated entities you need to use custom naming strategy. You need to create your own version of [NamingStrategy ](https://github.com/Kononnable/typeorm-model-generator/blob/master/src/NamingStrategy.ts ) nad pass it as command parameter.
```typeorm-model-generator -d typeorm_mg --namingStrategy=./NamingStrategy -e sqlite -db /tmp/sqliteto.db```