在我重新发明轮子之前,有没有一个简单的工具可以像laravel一样进行模式迁移,但使用标准SQL?许多模式迁移工具仅基于数字前缀应用迁移文件,其中所述前缀大于当前表增量。我更感兴趣的是一个工具,它可以按顺序(数字前缀)遍历迁移目录中的所有文件,并将任何MISSING(来自数据库迁移表)SQL迁移文件应用到数据库。更喜欢自由/开源软件,也不会把回滚功能踢下床。
2hh7jdfx1#
FlywayDB和Liquibase这两个工具都非常适合处理数据库迁移。这两个工具都是在“Apache2.0许可证”下授权的,所以你有可能贡献自己的东西,并且源代码是在Github上公开的。FlywayDB是更多的版本号导向和存储在一个表中的迁移。数字前缀作为您的要求。Liquibase处理变更集,其顺序取决于变更日志文件中变更集的顺序。
93ze6v8z2#
如果您正在寻找一个非常简单的替代方案(但仍然很强大),请查看dbmate
umuewwlo3#
这不是一个通用的答案,但是如果你喜欢PHP,你应该考虑教条迁移:https://packagist.org/packages/doctrine/migrations
uelo1irk4#
除了flyway和liquibase,还有一个新的Bytebase,它有很好的GUI和支持GitOps。
rm5edbpk5#
Flyway看起来非常适合-它处理migrations目录中的普通SQL文件,并使用DB表来跟踪已经应用到目标DB的迁移。
5q4ezhmt6#
不确定它是否满足你的所有需求,但在工作中,我们使用liquibase来控制数据库模式。我不是这里的DBA,所以从开发的Angular 来看,它非常简单。我们只需使用SQL创建一个yaml文件,并在git repo中进行常规提交,PR等。所以在我看来,这很直观。
6条答案
按热度按时间2hh7jdfx1#
FlywayDB和Liquibase这两个工具都非常适合处理数据库迁移。
这两个工具都是在“Apache2.0许可证”下授权的,所以你有可能贡献自己的东西,并且源代码是在Github上公开的。
FlywayDB是更多的版本号导向和存储在一个表中的迁移。数字前缀作为您的要求。
Liquibase处理变更集,其顺序取决于变更日志文件中变更集的顺序。
93ze6v8z2#
如果您正在寻找一个非常简单的替代方案(但仍然很强大),请查看dbmate
umuewwlo3#
这不是一个通用的答案,但是如果你喜欢PHP,你应该考虑教条迁移:https://packagist.org/packages/doctrine/migrations
uelo1irk4#
除了flyway和liquibase,还有一个新的Bytebase,它有很好的GUI和支持GitOps。
rm5edbpk5#
Flyway看起来非常适合-它处理migrations目录中的普通SQL文件,并使用DB表来跟踪已经应用到目标DB的迁移。
5q4ezhmt6#
不确定它是否满足你的所有需求,但在工作中,我们使用liquibase来控制数据库模式。我不是这里的DBA,所以从开发的Angular 来看,它非常简单。我们只需使用SQL创建一个yaml文件,并在git repo中进行常规提交,PR等。所以在我看来,这很直观。