为什么jOOQ要你把数据库的用户名和密码签入git?



我正在尝试建立我的第一个jOOQ项目。我有一个模式设置,我需要从它做代码生成。

显然,代码生成器需要访问数据库以便查询它。

不幸的是,数据库用户名和密码似乎需要在配置文件中硬编码。

什么? !

我没有检查我的数据库密码,任何数据库密码,到git!

首先,因为这个应用程序的源代码在GitHub上是公开的。

第二,因为我是专业人员,我不会因为任何事情而偏离专业的软件开发方法。

要做到这一点,唯一的方法真的是把你的DB密码签入git,从git中省略整个配置文件,或者处理本地更改,如果它们被提交,可能会带来灾难吗?

很高兴看到您不会盲目地在git中检入您的用户名和密码。但是我不确定为什么你认为jOOQ"希望你">那样做。在jOOQ或jOOQ手册中没有任何建议您应该这样做。

您可能指的是手册中的代码生成配置部分?例如

<jdbc>
<driver>oracle.jdbc.OracleDriver</driver>
<url>jdbc:oracle:thin:@[your jdbc connection parameters]</url>
<user>[your database user]</user>
<password>[your database password]</password>
</jdbc>

但是这只是普通的Maven配置XML,因此您可以轻松地使用${db.user}{db.password}系统属性。或者环境变量。这些都是Maven的特性,而不是jOOQ的。Gradle有类似的功能。

除此之外,jOOQ支持将这些值作为系统属性传递,独立于Maven/Gradle:

  • -Djooq.codegen.jdbc.user(string):用于基于JDBC连接的代码生成的JDBC用户名
  • -Djooq.codegen.jdbc.password(string):用于基于JDBC连接的代码生成的JDBC密码

您还可以通过编程方式配置代码生成器,在这种情况下,您可以完全自由地选择将用户名/密码传递给您想要的代码生成设置的任何机制。

另外,请记住,生成代码的推荐方法之一是使用testcontainers,在用户名和密码不相关的情况下,使这个设置更简单。

如您所见,有大量的选项,没有一个表明jOOQ希望您做坏事。

最新更新