在春季启动应用程序中何时使用schema.sql



我正在努力了解何时使用schema.sql数据库创建技术,以及何时依赖Spring引导基于我的实体类的创建。如何决定?

让我们暂时离开schema.sql

ORM自动模式创建(创建、更新或创建-删除(在应用程序开发过程中通常很有用。即使在候选发布和QA审查期间,它仍然很有用,因为开发团队在出现问题时所做的更改可以更快地进行。

当应用程序达到关键阶段并在生产中成熟时,ORM自动发生的任何更改都可能被认为是危险的。

在这个阶段,在大公司中,通常只会在生产数据库中推出一些影响数据库的sql脚本,在推出之前应该首先对其进行审查和测试。此外,回滚sql可能是必要的。

因此,ORM在数据库模式中的作用通常只是在应用程序的早期阶段,而不是在生产中足够成熟的时候。

现在让我们回到schema.sql。这个文件可以只使用一次,通过一些sql命令创建数据库。这也不希望在应用程序执行的任何时候运行。至少在大多数应用程序中不是这样。

我认为一个合乎逻辑的方法是在开发和QA的初始阶段使用ORM,然后当你即将达到成熟阶段时,您检查ORM创建了什么类型的数据库,然后进行手动审查,以确保所有内容和任何有意义的优化,在这个阶段,您可以使用ORM的现有模式创建您自己的永久schema.sql

出现上述情况的明显原因是,使用schema.sql,您可以100%控制数据库的创建方式。使用ORM,您可以依赖ORM提供程序来为您构建它。这个ORM提供程序可能会提供一些新的库,这些库会影响以前的库的使用方式和许多其他内容。结果是,使用ORM,您不能100%控制要创建的数据库。

最新更新