【问题标题】:Base directory and schema_version基本目录和 schema_version
【发布时间】:2012-11-17 22:33:01
【问题描述】:

我刚刚测试了命令行工具,并且能够按预期迁移我的数据库架构更改(DDL 脚本)。但是我不得不将所有脚本移到 sql 目录下。

有没有办法将 flyway 指向我的真实脚本所在的目录(git 或 svn 存储库)?看起来 flyway.locations 仅适用于相对路径。

schema_version 表名和列名都是在我的数据库 (Oracle) 中以小写形式创建的。绝大多数使用 Oracle 的人都习惯于大写对象名和列名(Oracle 中的默认设置)。我在配置文件中找到了一个属性来设置我自己的表名。有没有什么方法可以让列名使用大写?

我在测试运行后检查了插入 version_schema 的数据。除了“脚本”列的第一个字符似乎被删除之外,所有看起来都不错。

我的前缀是“db_”。这是我在 schema_version 中看到的,

SQL> 从 schema_version 中选择“脚本”;

脚本


b_1_0__test10.sql

b_1_1__test10.sql

b_1_0_1__test10.sql

数据库/db_2012_11_20__query.sql

>

【问题讨论】:

    标签: flyway


    【解决方案1】:

    这里有很多问题(将它们分开会更容易)。我会尽力回答他们:

    1. 目前不支持。见https://github.com/flyway/flyway/issues/108。符号链接可以作为一种解决方法。

    2. 不,列名没有配置属性。 schema_version 表是 Flyway 私有的,不供外部使用。

    3. 这听起来像是一个错误。请提交包含您的配置(OS + 版本、DB + 版本、Flyway 版本、配置文件内容)和重现的确切步骤的问题。

    【讨论】:

    • 谢谢阿克塞尔。这是新问题 - code.google.com/p/flyway/issues/detail?id=380。无论如何要注册一个已经运行的脚本吗?我们经常需要在我们的数据库中部署热修复来解决即时问题(例如,新索引以提高性能),而无需等待在我们的源代码控制存储库中检查脚本并通过 flyway 运行。我们需要注册这些脚本,但我们无法再次运行它们,这将失败。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    • 2011-09-28
    • 1970-01-01
    • 2012-09-13
    • 2014-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多