如何在KeystoneJS中向列表添加新字段

时间:2019-02-14 23:10:35

标签: keystonejs

我想通过在Post模式中添加一个布尔型“ frontPage”字段来扩展KeystoneJS中的Blog,我想使用该字段在首页上显示选定的帖子。

我想出了以下代码,并将它们放在了updates文件夹中:

var keystone = require('keystone');
var async = require('async');

exports = module.exports = function (done) {
    let post = keystone.list('Post');

    post.add({
        frontPage: Boolean
    });
    done();
};

它似乎起作用,但是当我重新启动服务器时更改不会持久。所有文档都描述了创建新列表的过程,但是没有文档说明如何修改现有列表。还尝试在末尾添加post.register(),但没有运气。

是否存在用于保留新模式的功能,或者我应该为此在Keystone外部编写一个shell脚本?

谢谢

1 个答案:

答案 0 :(得分:0)

  

它似乎起作用,但是当我重新启动服务器时更改不会持久。

application updates folder中的脚本用于数据导入或迁移,并且有意仅应用于给定部署一次。

  

所有文档都描述了创建新列表的过程,但是没有文档说明如何修改现有列表。

要添加,删除或更改模型中的字段,应在Keystone项目中修改文件(例如:models/Post.js),然后重新启动应用程序以获取更改。

除非您想包括相关的数据更改(例如,为现有文档设置值),否则通常无需创建相应的update脚本。