{"Entry":{"collection":"guc","key":"config_file","name":"config_file","aliases":[],"metadata":{"baseline":false,"boot_human":"Not specified","boot_val":null,"category":"File Locations","category_zh":"","changed_in":[],"changes":[{"documentation_changed":false,"fields":{},"from":"7.4","status":"added","to":"8.0"},{"documentation_changed":true,"fields":{},"from":"8.1","status":"changed","to":"8.2"}],"content_hash":"4d5edc245c6be1aba282033407a1d25c172d62020fa9e5f39a684f20111178c2","context":"","default_changed_in":[],"default_history":[{"from":"9.0","to":"19","value":"Not specified"}],"derived_content_hash":"9ad716f0a88b44fd0f7e472e09e48ebee5ed1077eebfe739b155453b3ee01aad","editorial":{"advice":{"olap":"Follow the OLTP rule, and for separate mounts also verify boot ordering, backup coverage, and path consistency on failover nodes.","oltp":"config_file is deployment topology, not workload tuning. Use an absolute path, least privilege, and atomic configuration rollout; verify access as the postgres service account before restart/reload.","small":"The default co-located layout is simplest. Split paths only for a concrete backup, packaging, or permission-isolation benefit."},"mechanism":["Sets the server's main configuration file. The value is fixed when the server starts, so changing it requires a restart.","PostgreSQL determines this path before reading the main configuration, so config_file itself can only be supplied on the postgres command line. Includes are resolved by the chosen configuration, while data_directory may point somewhere else.","Monitor and change config_file together with allow_alter_system, data_directory, hba_file. Validate on the relevant server role and real workload, then use its postmaster context to choose session change, reload, or restart; a historical boot default is not the current effective value."],"pitfalls":["Missing directory traversal, read, or write permission for the service account.","Confusing restart requirements for a path with reload behavior of the selected file contents.","Omitting the path on a failover node or from backup inventory.","Using a relative path that depends on an unstable working directory."],"references":[{"title":"PostgreSQL 19 Beta 4: config_file","url":"https://www.postgresql.org/docs/19/runtime-config-file-locations.html#GUC-CONFIG-FILE"},{"title":"PostgreSQL 19 release notes","url":"https://www.postgresql.org/docs/19/release-19.html"}],"related":["allow_alter_system","data_directory","hba_file","ident_file","external_pid_file","extension_destdir"],"summary":"config_file — Sets the server's main configuration file. Observed in PG9.0–19 Beta 4; its last measured boot default is not set in PG19 Beta 4, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA."},"enumvals":[],"first_version":"8.0","group":"File Locations","group_slug":"file-locations","imported_at":"2026-09-27T17:57:30.977685+08:00","intro_commit":{},"key":"config_file","last_version":"20","max_val":"","min_val":"","name":"config_file","position":68,"present_in":["8.0","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"repair_provenance":{"original_source_revision":"english-manuals:0a6c7c66d4150153648a5efe5c17ce77b67356a4c9c44982290abd713c9bafbf","receipt_sha256":"10f14273d182946b03c16b8b912c5108892bb883a66bdeee765139e9ade267f1","repair":"wiki-repair-20261023"},"short_desc":"Specifies the main server configuration file (customarily called postgresql.conf).","short_desc_zh":"","source_rev":"wiki-repair-20261023:d2794569c775b1aad0d65c15aa1c5ef3bcde882933e28cb55e2d6bcbb2812101","unit":"","vartype":"string"}},"Definition":{"Collection":"guc","Key":"config_file","SourceDatabase":"center","Version":"18","SourceTable":"guc","SourceKey":"config_file","SourceRevision":"wiki-repair-20261023:d2794569c775b1aad0d65c15aa1c5ef3bcde882933e28cb55e2d6bcbb2812101","Facts":{"boot_val":null,"category":"File Locations","context":"postmaster","description":"Specifies the main server configuration file (customarily called postgresql.conf). This parameter can only be set on the postgres command line.","description_zh":"指定主服务器配置文件（通常叫 postgresql.conf）。这个参数只能在 postgres 命令行上设置。","description_zh_html":"\u003cp\u003e\n         指定主服务器配置文件（通常叫 \u003ccode class=\"filename\"\u003epostgresql.conf\u003c/code\u003e）。这个参数只能在 \u003ccode class=\"command\"\u003epostgres\u003c/code\u003e 命令行上设置。\n       \u003c/p\u003e","doc":{"anchor":"GUC-CONFIG-FILE","file":"runtime-config-file-locations.html","lang":"en","sha256":"d32b4a6043ad0ec1a0b4d476f80aa279be0a3491176860e0d2f2439eddf612ad","slug":"18"},"documented":true,"enumvals":null,"extra_desc":null,"lang":"en","max_val":null,"metadata_version":"18","min_val":null,"name":"config_file","short_desc":"Sets the server's main configuration file.","source":"pg-settings-source-snapshot","translation_provenance":{"inputs":[{"kind":"current-pgdoc-translation","path":"/Users/vonng/pgsty/pgdoc/zh/18/html/runtime-config-file-locations.html","sha256":"7b48da92800e911f199e0fad1ebdd75d67d4020daa084ee833257a688c248fab"}],"kind":"same-version-pgdoc","locale":"zh-Hans","source_revision":"b1b500221dbe5437cfca004d6b04d3f6e422765d","version":"18"},"unit":null,"vartype":"string","zh_from":"same-version-pgdoc"},"ManualEvidence":{"doc":{"anchor":"GUC-CONFIG-FILE","file":"runtime-config-file-locations.html","lang":"en","sha256":"d32b4a6043ad0ec1a0b4d476f80aa279be0a3491176860e0d2f2439eddf612ad","slug":"18"}},"MeasuredEvidence":{"metadata_version":"18"}},"Text":{"Collection":"guc","Key":"config_file","SourceDatabase":"center","Version":"18","Locale":"en","Title":"config_file","Summary":"Specifies the main server configuration file (customarily called postgresql.conf). This parameter can only be set on the postgres command line.","BodyHTML":"\u003cp\u003eSpecifies the main server configuration file (customarily called postgresql.conf). This parameter can only be set on the postgres command line.\u003c/p\u003e","SourceRevision":"wiki-repair-20261023:d2794569c775b1aad0d65c15aa1c5ef3bcde882933e28cb55e2d6bcbb2812101","ContentHash":"0a683af339d6f3a7e70491dd344f805e72cefe28f41c28c362ae5625b1b749f3","Payload":{"description":"Specifies the main server configuration file (customarily called postgresql.conf). This parameter can only be set on the postgres command line."}},"RequestedLocale":"en","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","8.0","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
