Skip to main content

将一些配置移出数据库

项目描述

生产/稳定 许可证:LGPL-3 OCA/服务器环境 在 Weblate 上翻译我 试试我的 Runbot

该模块提供了一种在 Odoo 主配置文件中定义环境并根据配置的环境从文件中读取一些配置的方法:您在主配置文件中定义环境,各种可能环境的值存储在server_environment_files配套模块。

server_environment_files模块是可选的,可以使用环境变量设置值,并回退数据库中的默认值。

从文件中读取的配置在配置菜单下可见。如果您不在“开发”环境中,您将无法看到定义的密钥中包含的值(默认情况下:“ passw ”、“ key ”、“ secret ”和“ token ”)。

目录

<nav class="contents local" id="contents" role="doc-toc"> </nav>

安装

就其本身而言,这个模块做的很少。参见例如 mail_environment插件,它依赖于这个插件,以允许根据环境配置传入和传出邮件服务器。

您可以将配置值存储在名为 server_environment_files的配套模块中。为此,您可以复制和自定义提供的 server_environment_files_sample模块。或者,您可以在环境变量SERVER_ENV_CONFIGSERVER_ENV_CONFIG_SECRET中提供它们。

配置

要配置此模块,您需要编辑实例的主配置文件,并添加一个名为running_env的指令。常用的值为'dev'、'test'、'production':

[options]
running_env=dev

与包含“passw”的键关联的值仅显示在“开发”环境中。

如果您不提供任何值,则使用test作为安全默认值。

您有多种设置配置值的可能性:

server_environment_files

您可以在server_environment_files插件中编辑所需的设置。server_environment_files_sample 可以用作示例

  • 所有/大多数环境共有的值可以使用 .ini 文件语法存储在 default/目录中;

  • 您需要定义的每个环境都存储在自己的目录中,并且可以覆盖或扩展默认值;

  • 您可以覆盖或扩展实例主配置文件中的值;

环境变量

您可以在环境变量SERVER_ENV_CONFIG 和/或SERVER_ENV_CONFIG_SECRET中定义配置。这两个变量的处理方式完全相同,这只是为了方便部署,您可以将秘密隔离在不同的加密文件中。它们是与文件具有相同 configparser 格式的多行环境变量。如果您在server_environment_files中使用了选项,则在环境变量中设置的选项会覆盖它们。

环境变量中的选项不依赖于running_env,变量的内容必须根据运行环境进行设置。

设置示例:

一个公共文件,其中包含公共变量:

# These variables are not odoo standard variables,
# they are there to represent what your file could look like
export WORKERS='8'
export MAX_CRON_THREADS='1'
export LOG_LEVEL=info
export LOG_HANDLER=":INFO"
export DB_MAXCONN=5

# server environment options
export SERVER_ENV_CONFIG="
[storage_backend.my_sftp]
sftp_server=10.10.10.10
sftp_login=foo
sftp_port=22200
directory_path=Odoo
"

第二个文件被加密并包含秘密:

# This variable is not an odoo standard variable,
# it is there to represent what your file could look like
export DB_PASSWORD='xxxxxxxxx'
# server environment options
export SERVER_ENV_CONFIG_SECRET="
[storage_backend.my_sftp]
sftp_password=xxxxxxxxx
"

警告

my_sftp必须与记录的名称匹配。如果您想要更可靠的东西,请使用server.env.techname.mixin 并使用tech_name字段来引用记录。请参阅“使用”。

默认值

使用server.env.mixin混合时,对于每个 env 计算字段,都会创建一个伴随字段<field>_env_default。该字段不依赖于环境。这是在配置文件/环境变量中未设置键时使用的后备值。

使用默认字段时,该字段在 Odoo 上可编辑。

注意:空的环境键总是优先于默认字段

服务器环境集成

阅读类models/server_env_mixin.py的文档。

用法

您可以在模型中包含一个 mixin,并通过覆盖_server_env_fields来配置环境计算字段。

class StorageBackend(models.Model):
    _name = "storage.backend"
    _inherit = ["storage.backend", "server.env.mixin"]

    @property
    def _server_env_fields(self):
        return {"directory_path": {}}

阅读models/server_env_mixin.py中的类和方法的文档。

如果你想有一个技术名称可以参考:

class StorageBackend(models.Model):
    _name = "storage.backend"
    _inherit = ["storage.backend", "server.env.techname.mixin", "server.env.mixin"]

    [...]

已知问题/路线图

  • 无法从命令行设置环境。必须使用配置文件。

  • 该模块不允许设置数据库服务器等低级属性。

  • server.env.techname.mixintech_name字段可以利用可计算/可写字段的新选项,并摆脱一些 onchange/read/write 代码。

错误追踪器

在GitHub 问题上跟踪错误。如果遇到问题,请检查您的问题是否已被报告。如果您首先发现它,请通过提供详细且受欢迎的 反馈来帮助我们粉碎它。

不要就技术问题的支持或帮助直接联系贡献者。

学分

作者

  • 营地

贡献者

维护者

该模块由 OCA 维护。

Odoo 社区协会

OCA 或 Odoo 社区协会是一个非营利组织,其使命是支持 Odoo 功能的协作开发并促进其广泛使用。

该模块是GitHub 上OCA/server-env项目的一部分。

欢迎您贡献。要了解如何,请访问https://odoo-community.org/page/Contribute

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

内置分布

odoo14_addon_server_environment-14.0.2.1.1-py3-none-any.whl (186.5 kB 查看哈希

已上传 py3