7

I begin with SailsJS and MySQL, and I have many tables in my database. So, I don't know that in SailsJS has a tool to generate models from database like Database First in Entity Framework (ASP)

3 Answers 3

3

You should use, it's very good to auto generate model base DB existing.
https://www.npmjs.com/package/sails-generate-models

Sign up to request clarification or add additional context in comments.

Comments

2

SailsJS does not have such a tool implemented.

Though, it should not be hard to create that yourself since MySQL's SHOW COLUMNS FROM table works quite well. Then you'd just have to create the .js model files.

Be wary of the configuration in config/models.js and set migrate to safe as you might drop some columns if you haven't tested and are not sure if you've generated the models correctly.

Comments

0

Have a look at Sails Inverse Model

Sails Inverse Model helps you build models, controllers and views JS Sails from any database. In addition, you can quickly and individually generate each model, view, controller or all three at the same time.

Install using command

npm install sails-inverse-model -g

To know the tool

sails-inverse-model --help

  Example:
$ mkdir sails-output
$ cd sails-output
$ sails-inverse-model -u postgres -p root -d almacen -t pg -m -v -c

User         : postgres
Password     : root
Database     : almacen
Host         : localhost
Models       : /home/julian/Documents/sails-output/models
Views        : /home/julian/Documents/sails-output/views
Controllers  : /home/julian/Documents/sails-output/controllers
DB           : pg
Schema (pg)  : public
=====================================
Views [OK]
=====================================
Models [OK]
=====================================
Controllers [OK]

  Note: Copy models      => your/project_sails/api
        Copy controllers => your/project_sails/api
        Copy views/*     => your/project_sails/views/

Then: 


$ cd your/project_sails/
$ sails lift


 More info: https://github.com/juliandavidmr/sails-inverse-model
 ---------------------------------------------------------------
Options:
 -u, --user        User of database
 -p, --pass        Password of database
 -d, --database    Database name
 -h, --host        Host server               Default: localhost
 -m, --models      Folder output models      Default: Folder actual
 -c, --controllers Folder output controllers Default: Folder actual
 -v, --views       Folder output views       Default: Folder actual 
 (Experimental)
 -t, --type        Type gestor database: mysql|postgres|mongodb  Default: mysql 

 -s, --schema      (Only PostgreSQL) Schema database postgres: Default: public
 -f, --file        (Only MySQL) .sql file path entry (Experimental)




====================== Individual generation ==================
  You can quickly generate a model, a controller, a view or these three at the same time.
  # Generate model 
  $ sails-inverse-model -g model --name Pet -a "name:string:r:u owner:string"

  # Generate Controller 
  $ sails-inverse-model -g controller --name Pet -a "name:string:r:u owner:string"

  # Generate View 
  $ sails-inverse-model -g view --name Pet -a "name:string:r owner:string"

  # Generate all (Model, View and Controller) 
  $ sails-inverse-model -g all --name Pet -a "name:string:r:k owner:string"

  Where:
  --------------------------------------------
  |Param | Description   |     Example       |
  |------|---------------|-------------------|
  |   r  | Required      | catname:string:r  |
  |   u  | Unique        | catname:string:u  |
  |   a  | Autoincrement | index:integer:a   |
  |   k  | Primary Key   | index:integer:k   |
  --------------------------------------------
  You can also set all three parameters at the same time, for example: index:integer:a:u:r

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.