From: lain <lain@soykaf.club>
Date: Fri, 20 Nov 2020 15:26:22 +0000 (+0100)
Subject: Application: Save postgres version in the environment
X-Git-Url: https://git.squeep.com/?a=commitdiff_plain;h=a407e33c78121abf880f257d291f45ed28b55eeb;p=akkoma

Application: Save postgres version in the environment
---

diff --git a/lib/pleroma/application.ex b/lib/pleroma/application.ex
index 8f08a6222..f2a8c7825 100644
--- a/lib/pleroma/application.ex
+++ b/lib/pleroma/application.ex
@@ -109,7 +109,28 @@ defmodule Pleroma.Application do
     # See http://elixir-lang.org/docs/stable/elixir/Supervisor.html
     # for other strategies and supported options
     opts = [strategy: :one_for_one, name: Pleroma.Supervisor]
-    Supervisor.start_link(children, opts)
+    result = Supervisor.start_link(children, opts)
+
+    set_postgres_server_version()
+
+    result
+  end
+
+  defp set_postgres_server_version() do
+    version =
+      with %{rows: [[version]]} <- Ecto.Adapters.SQL.query!(Pleroma.Repo, "show server_version"),
+           {num, _} <- Float.parse(version) do
+        num
+      else
+        e ->
+          Logger.warn(
+            "Could not get the postgres version: #{inspect(e)}.\nSetting the default value of 9.6"
+          )
+
+          9.6
+      end
+
+    Application.put_env(:postgres, :version, version)
   end
 
   def load_custom_modules do