
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
i2g-sequelize-auto
Advanced tools
Automatically generate bare sequelize models from your database.
Automatically generate models for SequelizeJS via the command line.
npm install -g sequelize-auto
You will need to install the correct dialect binding globally before using sequelize-auto.
Example for MySQL/MariaDB
npm install -g mysql
Example for Postgres
npm install -g pg pg-hstore
Example for Sqlite3
npm install -g sqlite
Example for MSSQL
npm install -g mssql
[node] sequelize-auto -h <host> -d <database> -u <user> -x [password] -p [port] --dialect [dialect] -c [/path/to/config] -o [/path/to/models] -t [tableName] -C
Options:
-h, --host IP/Hostname for the database. [required]
-d, --database Database name. [required]
-u, --user Username for database.
-x, --pass Password for database.
-p, --port Port number for database.
-c, --config JSON file for Sequelize's constructor "options" flag object as defined here: https://sequelize.readthedocs.org/en/latest/api/sequelize/
-o, --output What directory to place the models.
-e, --dialect The dialect/engine that you're using: postgres, mysql, sqlite
-a, --additional Path to a json file containing model definitions (for all tables) which are to be defined within a model's configuration parameter. For more info: https://sequelize.readthedocs.org/en/latest/docs/models-definition/#configuration
-t, --tables Comma-separated names of tables to import
-T, --skip-tables Comma-separated names of tables to skip
-C, --camel Use camel case to name models and fields
-n, --no-write Prevent writing the models to disk.
-s, --schema Database schema from which to retrieve tables
-z, --typescript Output models as typescript with a definitions file.
sequelize-auto -o "./models" -d sequelize_auto_test -h localhost -u my_username -p 5432 -x my_password -e postgres
Produces a file/files such as ./models/Users.js which looks like:
/* jshint indent: 2 */
module.exports = function(sequelize, DataTypes) {
return sequelize.define('Users', {
'id': {
type: DataTypes.INTEGER(11),
allowNull: false,
primaryKey: true,
autoIncrement: true
},
'username': {
type: DataTypes.STRING,
allowNull: true
},
'touchedAt': {
type: DataTypes.DATE,
allowNull: true
},
'aNumber': {
type: DataTypes.INTEGER(11),
allowNull: true
},
'bNumber': {
type: DataTypes.INTEGER(11),
allowNull: true
},
'validateTest': {
type: DataTypes.INTEGER(11),
allowNull: true
},
'validateCustom': {
type: DataTypes.STRING,
allowNull: false
},
'dateAllowNullTrue': {
type: DataTypes.DATE,
allowNull: true
},
'defaultValueBoolean': {
type: DataTypes.BOOLEAN,
allowNull: true,
defaultValue: '1'
},
'createdAt': {
type: DataTypes.DATE,
allowNull: false
},
'updatedAt': {
type: DataTypes.DATE,
allowNull: false
}
}, {
tableName: 'Users',
freezeTableName: true
});
};
Which makes it easy for you to simply Sequelize.import it.
For the -c, --config
option the following JSON/configuration parameters are defined by Sequelize's options
flag within the constructor. For more info:
https://sequelize.readthedocs.org/en/latest/api/sequelize/
var SequelizeAuto = require('sequelize-auto')
var auto = new SequelizeAuto('database', 'user', 'pass');
auto.run(function (err) {
if (err) throw err;
console.log(auto.tables); // table list
console.log(auto.foreignKeys); // foreign key list
});
With options:
var auto = new SequelizeAuto('database', 'user', 'pass', {
host: 'localhost',
dialect: 'mysql'|'mariadb'|'sqlite'|'postgres'|'mssql',
directory: false, // prevents the program from writing to disk
port: 'port',
additional: {
timestamps: false
//...
},
tables: ['table1', 'table2', 'table3']
//...
})
Add -z to cli options or typescript: true
to programmatic options. Model usage in a ts file:
// All models, can put in or extend to a db object at server init
import * as dbTables from './models/db.tables';
const tables = dbTables.getModels(sequelize); //:dbTables.ITable
tables.Device.findAll
// Single models
import * as dbDef from './models/db.d';
const devices:dbDef.DeviceModel = sequelize.import('./models/Device');
devices.findAll
You must setup a database called sequelize_auto_test
first, edit the test/config.js
file accordingly, and then enter in any of the following:
# for all
npm run test
# mysql only
npm run test-mysql
# postgres only
npm run test-postgres
# postgres native only
npm run test-postgres-native
# sqlite only
npm run test-sqlite
FAQs
Automatically generate bare sequelize models from your database.
The npm package i2g-sequelize-auto receives a total of 5 weekly downloads. As such, i2g-sequelize-auto popularity was classified as not popular.
We found that i2g-sequelize-auto demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.