Sql 如何将liquibase迁移展平到schema init文件中?

Sql 如何将liquibase迁移展平到schema init文件中?,sql,spring,liquibase,Sql,Spring,Liquibase,在我们当前的项目中,我们使用liquibase来管理数据库迁移。 我们的迁移是*.sql文件。我们目前在master中有156个这样的迁移 我们的项目是一个spring启动应用程序,使用的数据库是PostgreSQL 9.6 为了在启动新环境进行测试和开发时加快DB init的速度,我们希望将所有这些迁移简化为一个迁移。在liquibase中有没有一种自动的方法可以做到这一点?或者我们必须将当前架构导出到文件中并手动重置变更日志吗?您可以从现有数据库生成变更日志 将数据库初始化为所需状态后,可以

在我们当前的项目中,我们使用liquibase来管理数据库迁移。 我们的迁移是*.sql文件。我们目前在master中有156个这样的迁移

我们的项目是一个spring启动应用程序,使用的数据库是PostgreSQL 9.6


为了在启动新环境进行测试和开发时加快DB init的速度,我们希望将所有这些迁移简化为一个迁移。在liquibase中有没有一种自动的方法可以做到这一点?或者我们必须将当前架构导出到文件中并手动重置变更日志吗?

您可以从现有数据库生成变更日志

将数据库初始化为所需状态后,可以使用generateChangeLog作为参数再次运行Liquibase:

liquibase-changeLogFile=complete_migration.postgresql.sql -driver=org.postgresql.driver -classpath=postgresql-42.2.8.jar -url=。。。 -用户名=。。。 -密码=。。。generateChangeLog 这将生成一个名为complete_migration.postgresql.sql的文件,该文件表示数据库的当前状态


请注意,我在多行上格式化了命令,运行多行命令的具体方式取决于您使用的操作系统。

您可以从现有数据库生成更改日志

将数据库初始化为所需状态后,可以使用generateChangeLog作为参数再次运行Liquibase:

liquibase-changeLogFile=complete_migration.postgresql.sql -driver=org.postgresql.driver -classpath=postgresql-42.2.8.jar -url=。。。 -用户名=。。。 -密码=。。。generateChangeLog 这将生成一个名为complete_migration.postgresql.sql的文件,该文件表示数据库的当前状态


请注意,我在多行上格式化了该命令,您运行多行命令的具体方式取决于您使用的操作系统。

这听起来可能有助于分析您当前的DB init进程,并查看时间从何而来。我不认为将156个sql文件转换成一个sql文件会有多大帮助——仅仅读取不同文件的开销不太可能是“帐篷中最长的杆子”

这听起来可能有助于分析您当前的DB init进程,并了解时间从何而来。我不认为将156个sql文件转换成一个sql文件会有多大帮助——仅仅读取不同文件的开销不太可能是“帐篷中最长的杆子”

这是一个很好的观点。我查一下。另一个担忧是,我的一些同事得到了非常好用的机器,我们注意到应用所有迁移比只应用从pgu转储获得的模式要慢。谢谢你的建议。这是一个很好的观点。我查一下。另一个担忧是,我的一些同事得到了非常好用的机器,我们注意到应用所有迁移比只应用从pgu转储获得的模式要慢。谢谢你的主意。