我有两个问题,我不知道如何在不进行回购的情况下在Flyway中完成工作,我们希望避免这种情况。
问题1 。 Sql Server Always Encrypted连接,我们如何覆盖或注入足够的信息,以便Flyway可以将数据库设置为连接到Always Encrypted数据库。该连接需要连接到Azure Key Vault以获得用于加密/解密的令牌,但是此附加设置超出了连接字符串所需的标准用户名/密码。另外,您不能在连接字符串上传递这些值。
More details here on how this would be done in JDBC,因为我不是Java人。
问题2 。有没有办法检索在迁移过程中以及在解决所有“占位符”之后将要运行的SQL语句的完整列表?我们需要一种检查所有SQL脚本的方法,以确保这些脚本不会运行特定的命令,例如CREATE USER,DROP DATABASE等。在受控环境中运行这些命令时,尽管这些命令在开发过程中运行良好,但它们可以不能在PRODUCTION中运行。在正式版中,数据库用户将具有提升的特权,因此我们需要在运行脚本之前检查脚本。我看到了Dry Runs Pro功能,但这只是写入文件中。我们希望将这些数据返回到回调中,然后可以在运行迁移之前对其进行验证。