【问题标题】:Using different dbs on production and test environment在生产和测试环境中使用不同的数据库
【发布时间】:2023-03-19 11:35:02
【问题描述】:

我想在我的测试环境中使用测试数据库,并在我的 Python 应用程序的生产环境中使用生产数据库。

我应该如何处理到两个数据库的路由?我是否应该有一个未跟踪的config.yml 文件,该文件在我的测试服务器上包含测试数据库的连接字符串,在生产服务器上包含生产数据库的连接字符串?

我使用github 进行版本控制,使用travis ci 进行部署。

【问题讨论】:

  • 是的 - 虽然我更喜欢可读性更高的配置文件 - 您的实例配置应该与您的应用程序分开。并且可能位于通常用于您的系统的不同位置。 Linux 尤其喜欢把 app 和 config 分开。

标签: python github configuration travis-ci configuration-files


【解决方案1】:

我们以 Linux 环境为例。通常,应用程序的用户级配置作为点文件放置在您的主文件夹下。所以你可以做的是这样的:

  1. 在您的 git 存储库中,跟踪示例配置文件,例如 config.sample.yaml,并将配置结构放在这里。
  2. 在部署时,无论是在测试环境还是生产环境中,您都可以将此文件复制并重命名为点文件,例如,$HOME/.{app}.config.yaml。然后在您的应用程序中,您可以读取此文件。

如果你正在开发一个python包,你可以在setup.py中进行文件复制操作。有一些优点:

  1. 您可以随时跟踪配置文件的结构变化。
  2. 测试和生产环境之间的单独配置。
  3. 更安全,您无需在公共文件中编写导入数据库连接信息。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-04
    • 1970-01-01
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多