羽毛 JS。如何编写自定义 CLI 方法来播种 Mongoose 模型
Feathers JS. How to write custom CLI method to seed Mongoose models
我想为@feathers/cli 编写一个自定义方法来为数据库添加一些初始数据。有人能给我指出方便扩展@feathers/cli的方向吗?
基本上,该方法应该连接到羽毛应用程序并尝试使用 service.create({data})
调用向模型添加记录。
或者有没有更好的方法来为 Feathers 模型播种和验证数据?我使用 Feathers-mongoose 适配器。
您可以通过要求 app.js
轻松创建自己的种子脚本。例如。在 seed.js
:
const app = require('../src/app');
(async () => {
app.setup();
// If you are using Sequelize:
// await app.get('sequelizeSync');
const user = await app.service('users').create({
email: 'test@user.com',
password: 'supersecret'
});
// Do other things here
})();
然后你可以 运行 它与 node seed
您可以使用sequelize-cli. Though I read somewhere they don't recommend mixing CLI's. Remember you are also using feathers' cli
安装 sequelize-cli。然后 npx sequelize-cli init
创建 cli 可以使用的目录结构。删除应用程序根目录中除 seeders 文件夹之外的所有新文件,不需要它们。
按 npx sequelize-cli seed:generate --name sample-table
创建迁移和数据并按 here.
所示进行编辑
您可以像这样 运行 种子 npx sequelize-cli db:seed:all
并像这样删除它 npx sequelize-cli db:seed:undo
只要您不混淆这两个 cli,这确实有助于节省时间。请记住,以这种方式创建数据不会通过 feathers hooks。
您还可以将此条目添加到项目 package.json
的 scripts
部分
"seed": "npx sequelize-cli db:seed:all",
"unseed": "npx sequelize-cli db:seed:undo:all",
我想为@feathers/cli 编写一个自定义方法来为数据库添加一些初始数据。有人能给我指出方便扩展@feathers/cli的方向吗?
基本上,该方法应该连接到羽毛应用程序并尝试使用 service.create({data})
调用向模型添加记录。
或者有没有更好的方法来为 Feathers 模型播种和验证数据?我使用 Feathers-mongoose 适配器。
您可以通过要求 app.js
轻松创建自己的种子脚本。例如。在 seed.js
:
const app = require('../src/app');
(async () => {
app.setup();
// If you are using Sequelize:
// await app.get('sequelizeSync');
const user = await app.service('users').create({
email: 'test@user.com',
password: 'supersecret'
});
// Do other things here
})();
然后你可以 运行 它与 node seed
您可以使用sequelize-cli. Though I read somewhere they don't recommend mixing CLI's. Remember you are also using feathers' cli
安装 sequelize-cli。然后 npx sequelize-cli init
创建 cli 可以使用的目录结构。删除应用程序根目录中除 seeders 文件夹之外的所有新文件,不需要它们。
按 npx sequelize-cli seed:generate --name sample-table
创建迁移和数据并按 here.
您可以像这样 运行 种子 npx sequelize-cli db:seed:all
并像这样删除它 npx sequelize-cli db:seed:undo
只要您不混淆这两个 cli,这确实有助于节省时间。请记住,以这种方式创建数据不会通过 feathers hooks。
您还可以将此条目添加到项目 package.json
scripts
部分
"seed": "npx sequelize-cli db:seed:all",
"unseed": "npx sequelize-cli db:seed:undo:all",