flyway - 在具有现有表的数据库上运行 flyway 迁移
问题描述
我正在使用现有表的 postgres 数据库上运行 flyway 迁移。这样做flyway抛出了这个错误
Found non-empty schema(s) "public" but no schema history table. Use baseline() or set baselineOnMigrate to true to initialize the schema history table.
在阅读了baselineOnMigrate上的文档后,我们需要做的就是将其切换到true
,我们应该能够完成迁移。
需要明确启用此功能:我们是否设置FLYWAY_BASELINE_ON_MIGRATE
为TRUE
仅一次,并且在创建模式历史表时我们可以将其转回FALSE
?还是我们必须坚持TRUE
价值?
解决方案
是的,您只需设置一次。这种方法实际上只用于 Flyway 从配置文件中获取其所有参数的情况......它仅用于单一用途(例如,仅用于数据库的一个特定副本,在许多副本中)。通常,您从命令行中的操作作为基线,如下所示:
Flyway baseline @FlywayArgs -baselineVersion='1.3.1' -baselineDescription='Existing version of MyDatabase'
本文使用的是 SQL Server 数据库而不是 Postgres,但可能会很好地了解 flyway 基线的工作原理:https ://www.red-gate.com/hub/product-learning/flyway/flyway-baselines-and-consolidations .
推荐阅读
- angular - 如果数据总是从根向下流动,输出如何影响 Angular 中的父级?
- sql-server - 如何根据 category_id USING SQL SERVER 从表中选择值
- corda - 在重新部署的 Corda Enterprise App 上发布更新状态
- react-native - React Native App 作为 Tcp 客户端
- scala - 如何使用scala为spark数据框中的列添加前缀和后缀值
- php - 如何在 Web 服务器上显示 Plivo 短信文本?
- php - Laravel5.6 phpexcel包安装报错
- python - 清理python中的列
- sql-server - 如何在 Angular 6 中使用 Sql 服务器连接?
- python - Python从列表中删除常用词