在第一次解除Sails.js应用程序时加载数据(灯具)

我正在使用Sails.js 0.10 RC7。 当开发人员签出一个项目并运行它时,我想预先填充一些数据到数据库中。 这应该只在应用程序运行的第一次完成(或者,也许我们应该有新的数据添加到夹具时发生这种情况)。

我可以把数据放在config/bootstrap.js但据我了解,每次运行sails lift都会运行。 我可以这么做,写一些逻辑,但是如果已经有一个关于这个的惯例,那么使用它会很好。

只是要清楚,我并不是专指testing设备,而是假定在任何运行环境中都可以使用的一些数据。

任何人已经解决这个问题?

几乎我们在Balderdash所做的每一个Sails项目都面临着这个问题。 我们几乎总是通过在引导程序中构build数据并将其封装在逻辑中来解决这个问题,以检测数据是否已经存在,就像您所描述的那样。 就像是:

 User.find({admin: true}).exec(function(err, adminUser) { // If an admin user exists, skip the bootstrap data if (adminUser) { return cb(); } // Otherwise, create data below... }); 

它不像真正的“向上/向下”数据库迁移那样健壮,但是由于我们使用非常方便(和无模式)的磁盘适配器进行开发,只需擦除数据文件即可擦除数据库,然后再次提起Sails以获得新引导的副本。 我们很less会错过数据库迁移所带来的复杂情况,但是我们确实意识到,在某些情况下他们变得有必要。 Sails社区做出了回应,提出了一些解决scheme(这里是一个例子 ),这是我们喜欢看到的!