Vous pouvez utiliser des scripts NPM quelque chose comme ceci:
// package.json
"scripts": {
"sequelize:prod": "sequelize $* --seeders-path seeders/production",
"sequelize:dev": "sequelize $* --seeders-path seeders/development",
}
Ou vous pouvez passer config directement comme ceci:
// package.json
"scripts": {
"sequelize:dev": "sequelize $* --config some/path/dev.js"
"sequelize:prod": "sequelize $* --config some/path/prod.js"
}
Listes d'options que vous pouvez passer pour se séparer:
- --envchaîne L'environnement pour exécuter la commande en
- --configchaîne Le chemin vers le fichier de configuration
- --options-cheminchaîne Le chemin d'un Fichier JSON avec options supplémentaires
- --migrations-patchaîne Le chemin d'accès au dossier de migrations
- --seeders-cheminchaîne Le chemin vers le dossier semoirs
- --Modèles-cheminchaîne Le chemin vers les modèles dossier
- --urlchaîne La chaîne de connexion à la base de données à utiliser. Alternative à l'utilisation --config fichiers
- --debugbolean Lorsque disponibles montrent diverses informations de débogage bolean
Dans les sources de sequelize-cli ont ce code link:
function loadRCFile(optionsPath) {
const rcFile = optionsPath || path.resolve(process.cwd(), '.sequelizerc');
const rcFileResolved = path.resolve(rcFile);
return fs.existsSync(rcFileResolved)
? JSON.parse(JSON.stringify(require(rcFileResolved)))
: {};
}
const args = yargs
.config(loadRCFile(yargs.argv.optionsPath));
Vous peut charger différents fichiers comme ".sequelizerc":
// package.json
"scripts": {
"sequelize:dev": "sequelize $* --options-path some/path/dev.js"
"sequelize:prod": "sequelize $* --options-path some/path/prod.js"
}
// some/path/dev.js
const path = require('path');
module.exports = {
"config": path.resolve('./app/config', 'config.json'),
"models-path": path.resolve('./app/models'),
"migrations-path": path.resolve('./app/migrations')
// here your development path to seeders
"seeders-path": path.resolve('./app/seeders/development')
}
// some/path/prod.js
const path = require('path');
module.exports = {
"config": path.resolve('./app/config', 'config.json'),
"models-path": path.resolve('./app/models'),
"migrations-path": path.resolve('./app/migrations')
// here your development path to seeders
"seeders-path": path.resolve('./app/seeders/production')
}
Mais vous pouvez créer des semoirs pour différents ENV dans un répertoire semeur.
Disons, nous avons.sequelizerc
// .sequelizerc
const path = require('path')
module.exports = {
"config": path.resolve('./app/config', 'config.json'),
"models-path": path.resolve('./app/models'),
"migrations-path": path.resolve('./app/migrations')
"seeders-path": path.resolve('./app/seeders')
}
Créer semoirs:
sequelize seed:generate --name create_users-dev.js
sequelize seed:generate --name create_users-prod.js
sequelize seed:generate --name create_users-whatever.js
Et nous courons seulement semoirs dev:
sequelize db:seed --seed `basename $(ls app/seeders/*-dev.js)`
ou prod semoirs:
sequelize db:seed --seed `basename $(ls app/seeders/*-prod.js)`
ou tout simplement les utilisateurs dev semoirs
sequelize db:seed --seed `basename $(ls app/seeders/*users-dev.js)`
Vous pouvez choisir quel semeur vous souhaitez exécuter.
Format:
sequelize db:seed --seed <array>
sequelize db:seed --seed file1 file2 fileN
Pouvez-vous expliquer la région où vous dites "Dans les sources ont ce code:"? Où se trouve ce code dans une application Node type? –
@ G.Deward Je veux dire sources sequelize-cli [voir ici] (https://github.com/sequelize/cli/blob/5633648ecb6d81b3fdeafadd5ee1c9e6fb350dd5/src/core/yargs.js#L5) –