Aktionen
- Inhaltsverzeichnis
- Update auf V25
- Update Postgres 13/15 (ab Prodat 2104)
Update auf V25¶
CREATE OR REPLACE FUNCTION TSystem.currentuser()
RETURNS varchar AS $$
SELECT current_user::varchar
$$ LANGUAGE sql STABLE;
CREATE OR REPLACE FUNCTION TSystem.current_user()
RETURNS varchar AS $$
SELECT current_user::varchar
$$ LANGUAGE sql STABLE;
DROP FUNCTION IF EXISTS prodat_languages.lang_text(integer, integer);
CREATE OR REPLACE FUNCTION prodat_languages.lang_text(integer, varchar) RETURNS varchar
AS $$
--WITH bringt nix, langsamer
SELECT coalesce(
(
SELECT
coalesce(CASE _curr_lang
WHEN 'D' THEN coalesce(t_kundtxt0, t_feld0, t_kundtxt0, t_feld0)
WHEN 'F' THEN coalesce(t_kundtxt1, t_feld1, t_kundtxt0, t_feld0)
WHEN 'EN' THEN coalesce(t_kundtxt3, t_feld3, t_kundtxt0, t_feld0)
WHEN 'IT' THEN coalesce(t_kundtxt4, t_feld4, t_kundtxt0, t_feld0)
WHEN 'ES' THEN coalesce(t_kundtxt5, t_feld5, t_kundtxt0, t_feld0)
WHEN 'CZ' THEN coalesce(t_kundtxt6, t_feld6, t_kundtxt0, t_feld0)
WHEN 'RU' THEN coalesce(t_kundtxt7, t_feld7, t_kundtxt0, t_feld0)
ELSE
coalesce(t_kundtxt0, t_feld0)
END
,
$2
)
FROM public.text0
LEFT JOIN LATERAL (SELECT s_inha FROM public.settings WHERE s_vari = 'LangMenu:' || TSystem.current_user() ) AS user_lang ON true
LEFT JOIN LATERAL (SELECT s_inha FROM public.settings WHERE s_vari = 'Lang') AS main_lang ON true
LEFT JOIN LATERAL (SELECT coalesce((SELECT s_spr_key FROM public.adkspco WHERE s_spco = user_lang.s_inha),
main_lang.s_inha
) AS _curr_lang
) AS lang ON true
WHERE t_nr = $1
)
, $2
)
$$ LANGUAGE sql STABLE PARALLEL SAFE;
SELECT TSystem.Settings__Set('ProdatVersion', '25.24.00.00'); -- für DBUpdates Sync
ALTER TABLE dbupdates ALTER COLUMN upd_bez TYPE varchar(150);
ALTER TABLE dbupdates ADD COLUMN IF NOT EXISTS upd_donedat timestamp(0);
ALTER TABLE dbupdates ADD COLUMN IF NOT EXISTS upd_sperr boolean NOT NULL DEFAULT false;
ALTER TABLE dbupdates ADD COLUMN IF NOT EXISTS upd_released boolean NOT NULL DEFAULT true;
ALTER TABLE dbupdates ALTER COLUMN upd_released SET DEFAULT false;
CREATE TYPE tsystem.dblink__connection
AS ENUM (
'default',
'syncro'
);
CREATE OR REPLACE FUNCTION tsystem.dblink__connectionstring__get(_t tsystem.dblink__connection DEFAULT 'default')
RETURNS varchar AS $$
DECLARE result varchar;
BEGIN
CASE _t
WHEN 'default' THEN
result := 'host=localhost port=' || inet_server_port()::integer || ' dbname=' || current_database() || ' user=SYS.dblink password=SYS.dblink';
WHEN 'syncro' THEN
result := 'host=pg.prodat-erp.de port=5432 dbname=PRODAT-18.08 user=syncro password=syncro';
ELSE
RAISE EXCEPTION 'Unknown connection type: %', _t;
END CASE;
RETURN result;
END $$ LANGUAGE plpgsql IMMUTABLE;
DROP FUNCTION IF EXISTS tsystem.settings__gettext(character varying);
CREATE OR REPLACE FUNCTION tsystem.syncro__dbupdates(IN _dblink VARCHAR DEFAULT tsystem.dblink__connectionstring__get( 'syncro' ) ) RETURNS void AS $$
BEGIN
SET LOCAL SESSION AUTHORIZATION syncro;
-- NotThisFields: dbrid,upd_donedat
INSERT INTO dbupdates ( upd_id,
upd_parent,
upd_minver,
upd_kunde,
--upd_donedat,
upd_bez,
upd_txt,
upd_sql,
upd_projekt,
upd_noerr,
upd_sperr,
upd_released,
--
insert_date,
insert_by,
modified_by,
modified_date
)
SELECT *
FROM dblink(_dblink,
'SELECT upd_id,
upd_parent,
upd_minver,
upd_kunde,
--upd_donedat,
upd_bez,
upd_txt,
upd_sql,
upd_projekt,
upd_noerr,
upd_sperr,
upd_released,
--
insert_date,
insert_by,
modified_by,
modified_date
FROM dbupdates
WHERE
( upd_kunde IS NULL OR upd_kunde LIKE ' || TSystem.quote_literal__connstr_param( TSystem.Settings__Get( 'KUNDE' ) ) || ' )
AND upd_minver <= ' || TSystem.quote_literal__connstr_param( TSystem.Settings__Get( 'ProdatVersion' ) ) || '
AND NOT upd_sperr
AND upd_released ')
AS ( _upd_id varchar(30),
upd_parent varchar(30), -- parent (Baumstruktur)
upd_minver varchar(11), -- [SYNCRO:Version] Mindest-Programmversion
upd_kunde varchar(20), -- [SYNCRO:Kunde]
--upd_donedat timestamp(0), -- [SYNCRO:NotThisFields] update eingespielt am
upd_bez varchar(150),
upd_txt text,
upd_sql text,
upd_projekt varchar(100),
upd_noerr boolean,
upd_sperr boolean,
upd_released boolean,
-- System (tables__generate_missing_fields)
insert_date date,
insert_by varchar(32),
modified_by varchar(32),
modified_date timestamp(0) -- [SYNCRO:Modified]
)
WHERE NOT EXISTS( SELECT true FROM dbupdates WHERE upd_id = _upd_id );
---
RAISE NOTICE 'dbupdates %', (SELECT count(*) FROM dbupdates);
END $$ LANGUAGE plpgsql;
SELECT tsystem.syncro__dbupdates();
Update Postgres 13/15 (ab Prodat 2104)¶
- Postgres 13/15 Installieren
- pg_hba.conf übernehmen
- ALTE SICHERUNGEN ENTFERNEN, sonst wird alles mitgenommen und man muss überall die implicit-casts einspielen!
- ggf eigene cluster für mandanten wenn diese getrennt sein sollen. > https://redmine.prodat-sql.de/issues/17033#note-15
- MoveDB Script ausführen. Dazu das Script direkt anpassen (Server und Port). Anweisungen beachten und unbedingt einhalten!
+ ..\Administration\DB_Admin_BackUp_TestDB\DB_Move_DB_Cluster__too.bat
Update Version 12 (Postgres 9) auf Version 2206 (Postgres 13/15)¶
- Postgres 13/15 installieren
- gem. oberer Beschreibung den Datenbankcluster in Postgres 13/15 umziehen. Somit wird am Bestandssystem NICHTS geändert.
- Nachdem der Cluster umgezogen ist, müssen die Files im Anhang ausgeführt werden
+ Durch diese Files werden Dummy Funktionen eingespielt, die Kompatiblilität mit dem neuen Client herstellen. Teilweise werden nuf Funktionsrümpfe eingespielt, damit die Oberflächen starten. Durch die DBupdates werden dann die richtigen Funktionen eingespielt
+ Wenn es beim Einspielen der Files zu fehlern kommt, muss man checken ob die Funktionen doch bereits vorhanden sind und dann auskommentieren
Update V11¶
Von [S] Jens A vor 4 Tagen aktualisiert · 19 Revisionen