Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1v3rYz-004mpJ-Tn for pgsql-general@arkaria.postgresql.org; Wed, 01 Oct 2025 07:47:50 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1v3rYv-00GfXW-Kw for pgsql-general@arkaria.postgresql.org; Wed, 01 Oct 2025 07:47:46 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1v3rYv-00GfXO-65 for pgsql-general@lists.postgresql.org; Wed, 01 Oct 2025 07:47:45 +0000 Received: from mail-pg1-x52e.google.com ([2607:f8b0:4864:20::52e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1v3rYr-000pZI-1f for pgsql-general@lists.postgresql.org; Wed, 01 Oct 2025 07:47:44 +0000 Received: by mail-pg1-x52e.google.com with SMTP id 41be03b00d2f7-b55640a2e33so5369504a12.2 for ; Wed, 01 Oct 2025 00:47:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jprotech-com-vn.20230601.gappssmtp.com; s=20230601; t=1759304860; x=1759909660; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=wdm/nVU3Fa8WNt11GpHsvpzoinaeqFydG0XPHE4I6h8=; b=PCTd3MpvkTt2OeiFdfUXGfHDCEmceipTsswl5JO4k0JLm9zyZqW7nepTbBoOKZT5aL +tyYPtoF+3DFLXbAE3Re3cV81EYNy0sDPtqyMJevPMlMI0uRdo08bSOzEfkT8T14JMQ5 fObMO5upVAkI5ql96HI5vP4fEmKX+kNmdOEG/At7YrkQxiD+WhXhb0MkBXN5aBixgnZz 44ipoXY14Nim8sGTMZkXuJHkIaxu+hmBTwz+6idK0G0zaydavYC4QAty4YsJds87wv9R hGOfTGG39s2ucXO1aEtUUVjDv1yDo0X3s1lO3LuoLgXGLRkEkDwPxPixaM8QPC/LvPkZ MdJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759304860; x=1759909660; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=wdm/nVU3Fa8WNt11GpHsvpzoinaeqFydG0XPHE4I6h8=; b=JeW7fLbpu9cAUcH2DtNFwW6POcnNjxyaZl3bgSjjN9D3jX4hT13rCwxHsZVncy5cUr GKtUkFVQ1OIF/dYMZ2qz6hfD3CoTNE6nhvyF9Ji7IuYwsXvsk/ercA/S7Z9Fn81dUDZd lbz6MS7qxml0Du34EEL5RRgjgGk38Xer3mgAl1SeaX9r0ifvItGD1ODuAgejy5l6aQ/b DxooyHYOwqWTcoI1dYWycmh+Ph/mW8C0HOO26K30z/mN/vgDYdybyWh4mS+lDkyjtEOR wzCDGgB7khIU3TUrA9Xds8KGiBi6RSgadwEey4j/ffIKkDtlWQKUSK/n0cLwgq70pgvw Fu5Q== X-Gm-Message-State: AOJu0Yxc9bscTxGsml0cRvaAijFlSkz/ete4Ao9dOs5lIXeiHNQwaSK8 SHVkzKUQHOc0RIITO82ZPfzrciqdDarXcuIIQIOcpHejbOsC6ifp7TmfK1ypiRWysq6vSpjE8f1 mylEtK5/MKGZSeU5LRG+fjFJnEUGh458DXOcUSAVS/K9q7tt1w3tE3uhauQ== X-Gm-Gg: ASbGncvRZHrz5RzU70okYhUkHIn1s2eWB163yTCxUlWckmAFx4/yD0xVQD78IzFe6oS QQgqA3ufUXeQtJL1q3xjb3EVjxYkW7+AlWZ2ZGNkO2NHBnxJasVbO2kk6Xjiqcfl8iFWQ/cNCZt CGgwvEjGkRSJsQJx2Hbz6+ZJYvM4NXldmhAD1sviQ9xrlm8dhbKhh1aJJPo/2oTFATyyYRZWW7N WF0k0eVhBfQAWES8ssGE0/cXWj6aFEP X-Google-Smtp-Source: AGHT+IFAZFcMPwcOf9A6Sb4ysd/j4HlkXDJJlMkL4Mor/i00DqgnjiYHmtihgvDgG/IHN2uTOaF7bgElmPwor3uleRs= X-Received: by 2002:a17:903:190d:b0:262:4878:9dff with SMTP id d9443c01a7336-28e7f26f32fmr35308995ad.12.1759304860148; Wed, 01 Oct 2025 00:47:40 -0700 (PDT) MIME-Version: 1.0 From: "Vu Le (JData - HN)" Date: Wed, 1 Oct 2025 14:47:29 +0700 X-Gm-Features: AS18NWDRBjD2q3kEvdQFeWXBJWAytEbXt_hQkQkDDv5UQ8SxUQM6GTdaRwqvaJI Message-ID: Subject: =?UTF-8?Q?Direct_Major_Upgrade_=2813=2E7_=E2=86=92_17=2E6=29_with_pg=5Fupgrade?= =?UTF-8?Q?=3A_Clarifying_the_need_for_Intermediate_Minor_Fixes=2FScripts?= To: pgsql-general@lists.postgresql.org Content-Type: text/plain; charset="UTF-8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi pgsql-general community, I am planning a significant major version upgrade for a large-scale PostgreSQL production environment, currently running PostgreSQL 13.7. Our target is the latest major version, 17.6, utilizing the pg_upgrade tool. My core question revolves around the recommended Extra Works/Manual Fixes from the intermediate minor and major versions. *** THE PROBLEM / MY CONCERN I've been reviewing various minor release notes and community advice. It is common to see specific instructions for manual steps in certain minor versions, such as: - REINDEX requirements for specific index types. - DROP/CREATE operations. - Executing specialized SQL scripts (e.g., fix-CVE-2024-4317.sql in some intermediate versions) to address data corruption or security fixes that cannot be automatically handled by standard upgrades. My question is: When performing a direct jump from 13.7 to 17.6 using pg_upgrade, do I need to manually identify and execute the cumulative extra works/fixes from ALL the skipped intermediate versions (13.8, 13.9, 14.x, 15.x, 16.x)? *** STEPS TAKEN SO FAR - Environment: Production (High Traffic, Large Data Volume). - Method: Planning to use pg_upgrade. - Testing: I have successfully performed the direct upgrade (13.7 -> 17.6) in our UAT/Dev environment. Functionality appears normal, but my customer's self-built UAT/Dev environment is known not to perfectly replicate 100% of our Production behavior, hence my caution. *** ASK FOR BEST PRACTICES Is there an official best practice document that clarifies how pg_upgrade handles these "extra works" from skipped minor releases? Does pg_upgrade implicitly incorporate all necessary structural fixes from the minor versions between 13.7 and 17.6? Has anyone in the community performed a similar large jump and found unexpected issues due to skipping these intermediate manual steps? Any guidance on this significant upgrade path would be highly appreciated. Thank you in advance for your time and expertise. -- Best Regards, Miles Le (Mr.)