【问题标题】:Sails.js : Compile native database functions/procedures on sails liftSails.js :在风帆升降机上编译本机数据库函数/程序
【发布时间】:2025-11-23 08:25:01
【问题描述】:

我正在使用带有 postgres 的sails.js 作为数据库。尽管大多数操作都可以通过水线 ORM 轻松处理,但在某些情况下,我更喜欢使用本机查询,有时甚至是 postgres 的本机存储函数。然而,存储函数的挑战在于它们带来了代码维护的开销。

在我的项目仓库中,我创建了一个包含所有 SQL 函数的目录 sql。目前,我必须手动确保每当我对函数进行一些更改时,我都需要在数据库上重新编译它。

我需要对其进行配置,以便在我重新启动服务器时编译它们,就像重新创建所有模型一样。是否有可能做到这一点以及如何做到这一点?

【问题讨论】:

    标签: postgresql stored-procedures sails.js waterline


    【解决方案1】:

    Sails 没有对编译 Postgres 存储过程的任何内置支持,但您可以为此创建一个 Grunt 任务。看看documentation for tasks。每次启动 Sails 时(在某些情况下,当文件更改时)都会运行这些。

    通过 Google 快速找到了 grunt-pg-utils 包,它可能会帮助您。

    【讨论】:

    • 看起来正是我需要的东西!非常感谢:-)
    • 你好 Scott,我设法通过复制 grunt_pg_utils 页面上提到的示例 grunt 文件的内容来实现这一点。但是要运行该任务,我必须执行命令 grunt restore(restore 是为重新编译所有存储过程而创建的任务。但是,我在sails lift 自动启动任务时遇到了麻烦。grunt 配置在sails 0.10 中完全不同。 x 与 0.9.x 相比