SQL 脚本在 Grails 项目中的合适位置

Where is the appropriate place for SQL scripts in a Grails project

我有一个导出域对象的 Grails 插件,以便多个应用程序可以共享相同的模式。我们有一些 SQL 脚本用于设置一些复杂的触发器、视图和其他功能,这些功能实际上不属于 GORM/Hibernate,至少不优雅。我想将脚本存储在同一个项目中。 "scripts" 文件夹(包含 _[Un]Install/Upgrade.groovy 的文件夹)是执行此操作的最佳位置吗?我看到了一个 Whosebug 的回答,它正在从 grails-app/conf/sql 中存储的脚本构建目录。但我实际上并没有尝试从项目中执行它们。

任何与数据库相关的绝对最佳解决方案是使用 database migration plugin。通过这种方式,您可以确保您的应用程序指向的任何数据库(开发、测试、生产等)都具有相同的 information/schema/functions/procedures 等

个人喜好。我通常为所有此类内容添加一个 'database' 目录。 'scripts' 目录用于 Grails 脚本,至少在 1.x 和 2.x 中是这样。有关更多信息,请参阅 Creating Gant Scripts or the create-script 命令。在 Grails 3 中,此类脚本已移至 src/main/scripts.