рдмрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ
рд╕реНрдХреАрдорд╛ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрд╡реЗрд╖рдг рдХрд░рддреЗ рд╕рдордп рдмреЗрдореЗрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рддреНрд░реБрдЯрд┐: рд╕реНрддрдВрдн "рдорд╛рди" рдкреНрд░рдХрд╛рд░ jsonb рдХрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд╛рда рдХреА рд╣реИ
рдкреНрд░рдЬрдирди рдХрд░рдирд╛
рдирд╡реАрдирддрдо рд╕реНрд░реЛрдд рдФрд░ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред V12 рдФрд░ v13 рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░
рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд┐рдирд╛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ
etherpad_1 | [реирежреиреж-режреп -реж: реиреж: рей 50: релреж.релрекрез] [ERROR] рдХрдВрд╕реЛрд▓ - рдПрд░рд░: рдХреЙрд▓рдо "рд╡реИрд▓реНрдпреВ" рдЯрд╛рдЗрдк рдЬреЛрдВрд╕рдм рдХрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдЯрд╛рдЗрдк рдЯреЗрдХреНрд╕реНрдЯ рдХрд╛ рд╣реИ
etherpad_1 | Parser.parseErrorMessage (/opt/etherpad-lite/src/node_modules/pg-protocol/dist/parser.js:278:15) рдкрд░
etherpad_1 | Parser.handlePacket (/opt/etherpad-lite/src/node_modules/pg-protocol/dist/parser.js:126:29) рдкрд░
etherpad_1 | Parser.parse (/opt/etherpad-lite/src/node_modules/pg-protocol/dist/parser.js:39:38) рдкрд░
etherpad_1 | Socket.stream.on (/opt/etherpad-lite/src/node_modules/pg-protocol/dist/index.js:8:42) рдкрд░
etherpad_1 | рд╕реЙрдХреЗрдЯ.рдорд┐рдЯ рдкрд░ (рдИрд╡реЗрдВрдЯ .js: 198: 13)
etherpad_1 | рд╕реЙрдХреЗрдЯ рдкрд░ред EventEmitter.emit (domain.js: 448: 20)
etherpad_1 | addChunk рдкрд░ (_stream_readable.js: 288: 12)
etherpad_1 | рдкрдардиреАрдпрдЕрдбрдХрдВрдХ рдкрд░ (_stream_readable.js: 269: 11)
etherpad_1 | рд╕реЙрдХреЗрдЯ рдкрд░ред Rableable.push (_stream_readable.js: 224: 10)
etherpad_1 | TCP.onStreamRead [as onread] (рдЖрдВрддрд░рд┐рдХ / stream_base_commons.js: 94: 17)
рдбреЗрд╕реНрдХрдЯреЙрдк (рдХреГрдкрдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдкреВрд░реА рдХрд░реЗрдВ):
рдирд╛
рд╕реНрдорд╛рд░реНрдЯрдлреЛрди (рдХреГрдкрдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдкреВрд░реА рдХрд░реЗрдВ):
рдирд╛
рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрджрд░реНрдн
рдпрд╣ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рдПрдХ рдореБрджреНрджрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдореИрдВрдиреЗ рдирд╡реАрдирддрдо рд╕реНрд░реЛрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдЬрдм рдореБрдЭреЗ рдПрдХ рд░рд┐рд▓реАрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред
рдореИрдВрдиреЗ рдЗрд╕реЗ 1.8.4 рдХреЗ рд╕рд╛рде рдЖрдЬрд╝рдорд╛рдпрд╛ рд╣реИ рдФрд░ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдорд┐рд▓реАред рдореИрдВрдиреЗ рдЙрд╕реА рд╣рд┐рд╕рд╛рдм рд╕реЗ рдореБрджреНрджреЗ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИред
1.8.5 рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЗрд╕ рдмрдЧ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡реВрдкреНрд╕ред
C8361a211a1e6bfbcc006933f48d48ca51857c71 рдореЗрдВ рдлрд┐рдХреНрд╕реНрдб
C8361a2 рдореЗрдВ рддрдп рдХрд┐рдпрд╛
рдореБрдЭреЗ рдЕрднреА рднреА рд╡рд╣ рдорд┐рд▓рддрд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдкрдиреЗ рдкреБрд▓ рдХрд┐рдпрд╛ рддреЛ рдмрд┐рди / рд░рди.рд╢?
рдЖрдкрдХреЛ ueber рдФрд░ bin / run рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╡рд╣ рдХрд░реЗрдЧрд╛ред рдлрд╛рд╕реНрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ
рд╣рд╛рдБ, рдореИрдВ рд╣рдореЗрд╢рд╛ bin/run.sh
ред
рдЗрд╕реЗ "ueberdb2": "^0.5.2"
рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЯреЗрд╕реНрдЯ рдареАрдХ рдЧреБрдЬрд░ рд░рд╣реЗ рд╣реИрдВред
рдХреНрдпрд╛ рдЖрдк рдПрдХ рдирдпрд╛ pg dB plz рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдкрд┐рдЫрд▓реЗ рдХрдорд┐рдЯ рдиреЗ рдЖрдкрдХрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рддреЛрдбрд╝рд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдк рдПрдХ рдирдпрд╛ pg dB plz рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдкрд┐рдЫрд▓реЗ рдХрдорд┐рдЯ рдиреЗ рдЖрдкрдХрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рддреЛрдбрд╝рд╛ рд╣реИред
рдпрдХреАрди рд╣реИ, рдореБрдЭреЗ рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред
рдХреНрдпрд╛ рдЖрдк рдПрдХ рдирдпрд╛ pg dB plz рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдкрд┐рдЫрд▓реЗ рдХрдорд┐рдЯ рдиреЗ рдЖрдкрдХрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рддреЛрдбрд╝рд╛ рд╣реИред
рджрд░рдЕрд╕рд▓, рдореЗрд░реЗ рджреЗрд╡ рдорд╛рд╣реМрд▓ рдХреЗ рдХрд╛рд░рдг, рдореБрдЭреЗ рд╣рд░ рдмрд┐рд▓реНрдб рдкрд░ рдПрдХ рдирдпрд╛ рдкреАрдЬреА рдбреАрдмреА рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред
рдлрд┐рд░ рдкреАрдк рдЯреНрд░реИрд╡рд┐рд╕ рдХреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рдХрд┐ рд╣рдо ueberdb рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВред рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ ueber dB рд░реЗрдкреЛ рдпрд╣рд╛рдВ рди рд╣реЛ
рдХреНрдпрд╛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдиреАрдЪреЗ рд░реЗрдкреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
https://github.com/ether/ueberDB#dirtyref
master
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдирдорд╕реНрддреЗ, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ 1.8.5 рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рддрдм рддрдХ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдирд┐рдХрд▓рддрд╛? (рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЦреЛрдЬрдирд╛ рдЖрд╕рд╛рди рд╣реИ!)
рдзрдиреНрдпрд╡рд╛рдж!
cc @ рдЧрд╛рд░реЗрдб
рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд░реЗрдкреЛ https://github.com/ether/ueberDB (рдорд╛рд╕реНрдЯрд░) рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реИ
рдореБрдЭреЗ рднреА:
[2020-09-11 11:36:24.449] [ERROR] console - error: column "value" is of type jsonb but expression is of type text
at Parser.parseErrorMessage (/usr/local/var/etherpad/repo/src/node_modules/pg-protocol/dist/parser.js:278:15)
at Parser.handlePacket (/usr/local/var/etherpad/repo/src/node_modules/pg-protocol/dist/parser.js:126:29)
at Parser.parse (/usr/local/var/etherpad/repo/src/node_modules/pg-protocol/dist/parser.js:39:38)
at Socket.<anonymous> (/usr/local/var/etherpad/repo/src/node_modules/pg-protocol/dist/index.js:8:42)
at Socket.emit (events.js:315:20)
at Socket.EventEmitter.emit (domain.js:483:12)
at addChunk (_stream_readable.js:295:12)
at readableAddChunk (_stream_readable.js:271:9)
at Socket.Readable.push (_stream_readable.js:212:10)
at TCP.onStreamRead (internal/stream_base_commons.js:186:23)
[2020-09-11 11:36:24.463] [ERROR] console - TypeError: Cannot read property 'name' of null
at Client._handleParseComplete (/usr/local/var/etherpad/repo/src/node_modules/pg/lib/client.js:358:26)
at Connection.emit (events.js:315:20)
at Connection.EventEmitter.emit (domain.js:483:12)
at /usr/local/var/etherpad/repo/src/node_modules/pg/lib/connection.js:109:12
at Parser.parse (/usr/local/var/etherpad/repo/src/node_modules/pg-protocol/dist/parser.js:40:17)
at Socket.<anonymous> (/usr/local/var/etherpad/repo/src/node_modules/pg-protocol/dist/index.js:8:42)
at Socket.emit (events.js:315:20)
at Socket.EventEmitter.emit (domain.js:483:12)
at addChunk (_stream_readable.js:295:12)
at readableAddChunk (_stream_readable.js:271:9)
settings.json
:{
"dbSettings" : {
"user" : "etherpad",
"host" : "localhost",
"port" : 5432,
"password": "xxx",
"database": "etherpad",
},
"padOptions": {
"noColors": false,
"showControls": true,
"showChat": true,
"showLineNumbers": true,
"useMonospaceFont": false,
"userName": false,
"userColor": false,
"rtl": false,
"alwaysShowChat": false,
"chatAndUsers": false,
"lang": "de-de"
},
"suppressErrorsInPadText": false,
"requireSession": false,
"editOnly": true,
"sessionNoPassword": false,
"minify": true,
"maxAge": 21600,
"abiword": null,
"soffice": null,
"tidyHtml": null,
"allowUnknownFileEnds": true,
"requireAuthentication": false,
"requireAuthorization": false,
"trustProxy": true,
"disableIPlogging": true,
"automaticReconnectionTimeout": 5,
"users": {
"admin": {
"hash": "xxx",
"is_admin": true
}
},
"socketTransportProtocols" : ["xhr-polling", "jsonp-polling", "htmlfile"],
"loadTest": false,
"exposeVersion": false,
"loglevel": "WARN",
"logconfig" :
{ "appenders": [
{ "type": "console" }
]
}
}
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;
CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
CREATE FUNCTION public.ueberdb_insert_or_update(character varying, text) RETURNS void
LANGUAGE plpgsql
AS $_$ BEGIN IF EXISTS( SELECT * FROM store WHERE key = $1 ) THEN UPDATE store SET value = $2 WHERE key = $1; ELSE INSERT INTO store(key,value) VALUES( $1, $2 ); END IF; RETURN; END; $_$;
ALTER FUNCTION public.ueberdb_insert_or_update(character varying, text) OWNER TO etherpad;
CREATE FUNCTION public.ueberdb_insert_or_update_jsonb(character varying, jsonb) RETURNS void
LANGUAGE plpgsql
AS $_$ BEGIN IF EXISTS( SELECT * FROM store WHERE key = $1 ) THEN UPDATE store SET value = $2 WHERE key = $1; ELSE INSERT INTO store(key,value) VALUES( $1, $2 ); END IF; RETURN; END; $_$;
ALTER FUNCTION public.ueberdb_insert_or_update_jsonb(character varying, jsonb) OWNER TO etherpad;
SET default_tablespace = '';
SET default_with_oids = false;
CREATE TABLE public.store (
key character varying(100) NOT NULL,
value jsonb NOT NULL
);
ALTER TABLE public.store OWNER TO etherpad;
ALTER TABLE ONLY public.store
ADD CONSTRAINT store_pkey PRIMARY KEY (key);
рдореИрдВрдиреЗ рд░реЛрд▓рдмреИрдХ рд╕рдбрд╝рдХ рд▓реАред рдореИрдВрдиреЗ 1.8.4 рдореЗрдВ рд╕рд┐рд░реНрдл рдИрдерд░ рдХреЛ рд░реЛрд▓рдмреИрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛:
[2020-09-11 20:55:44.494] [ERROR] console - JSON-PROBLEM:[object Object]
[2020-09-11 20:55:44.495] [ERROR] console - (node:1) UnhandledPromiseRejectionWarning: SyntaxError: Unexpected token o in JSON at position 1
at JSON.parse (<anonymous>)
at /opt/etherpad-lite/src/node_modules/ueberdb2/CacheAndBufferLayer.js:169:24
at Query.<anonymous> (/opt/etherpad-lite/src/node_modules/ueberdb2/postgres_common.js:99:5)
at Query.handleReadyForQuery (/opt/etherpad-lite/src/node_modules/pg/lib/query.js:128:10)
at Connection.<anonymous> (/opt/etherpad-lite/src/node_modules/pg/lib/client.js:247:19)
at Connection.emit (events.js:198:13)
at Connection.EventEmitter.emit (domain.js:448:20)
at Socket.<anonymous> (/opt/etherpad-lite/src/node_modules/pg/lib/connection.js:134:12)
at Socket.emit (events.js:198:13)
at Socket.EventEmitter.emit (domain.js:448:20)
[2020-09-11 20:55:44.496] [ERROR] console - (node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
[2020-09-11 20:55:44.496] [ERROR] console - (node:1) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ pgsql рдбрдВрдк рдХреЛ рднреА рдмрд╣рд╛рд▓ рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдЕрдм 1.8.4 рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдВрддрд┐рдо рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛)ред
рдХрд╛рд░рдг: рез. 1.8.рек рд╕реЗ рез. to.рел рддрдХ рдХреЙрд▓рдо рдХрд╛ рдорд╛рди рдЯрд╛рдЗрдк рдЯреЗрдХреНрд╕реНрдЯ рд╕реЗ рдмрджрд▓рдХрд░ jsonb рд╣реИред
рдПрдХ рдмрдбрд╝реА рд░рд┐рд▓реАрдЬ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП ...
рдХреНрдпрд╛ рдХреЛрдИ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬрд┐рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
рдореИрдВ рдмрд╕ рдЗрди рдХрдореЗрдВрдЯреНрд╕ рдХреЛ рд╡рд╛рдкрд╕ рд▓рд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╣реВрдВред рдпрд╣ рд╕рдм рдЦрд░рд╛рдм рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ IMHO рдерд╛ред
рдкрд░рд┐рд╡рд░реНрддрди рд▓реЙрдЧ рдХрд╣рддрд╛ рд╣реИ "рдорд╣рддреНрд╡рдкреВрд░реНрдг: рдпрд╣ 1.8.5 рдореЗрдВ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬреЗрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ" 1.8.6 рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрднреА рднреА рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдЕрдкрд╡рд╛рдж рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЕрдм рдЗрди рдЕрдкрд╡рд╛рджреЛрдВ рдкрд░ рднреА рдЧреМрд░ рдХрд┐рдпрд╛, рдЬреЛ рд╕реЗрд╡рд╛ рдкреБрдирд░рд╛рд░рдВрдн рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдЖрдЙрдЯрдкреБрдЯ рд╣реИрдВ:
[2020-09-19 17:47:45.482] [ERROR] console - JSON-PROBLEM:[object Object]
[2020-09-19 17:47:45.496] [ERROR] console - (node:30613) UnhandledPromiseRejectionWarning: SyntaxError: Unexpected token o in JSON at position 1
at JSON.parse (<anonymous>)
at /usr/local/var/etherpad/repo/src/node_modules/ueberdb2/lib/CacheAndBufferLayer.js:169:24
at Query.<anonymous> (/usr/local/var/etherpad/repo/src/node_modules/ueberdb2/databases/postgres_common.js:99:5)
at Query.handleReadyForQuery (/usr/local/var/etherpad/repo/src/node_modules/pg/lib/query.js:122:12)
at Client._handleReadyForQuery (/usr/local/var/etherpad/repo/src/node_modules/pg/lib/client.js:281:19)
at Connection.emit (events.js:315:20)
at Connection.EventEmitter.emit (domain.js:483:12)
at /usr/local/var/etherpad/repo/src/node_modules/pg/lib/connection.js:109:12
at Parser.parse (/usr/local/var/etherpad/repo/src/node_modules/pg-protocol/dist/parser.js:40:17)
at Socket.<anonymous> (/usr/local/var/etherpad/repo/src/node_modules/pg-protocol/dist/index.js:8:42)
[2020-09-19 17:47:45.497] [ERROR] console - (node:30613) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
[2020-09-19 17:47:45.497] [ERROR] console - (node:30613) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
@ c7hm4r рдЖрдкрдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдЖрдпрд╛ рдпрд╛ рдХреБрдЫ рдФрд░? рдпрджрд┐ рдЖрдк рдПрдХ рдирдпрд╛ рдЯрд╛рд░рдмрд▓ / рдбреЗрдЯрд╛рдмреЗрд╕ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЪреАрдЬреЗрдВ рдареАрдХ рд╣реИрдВ?
@JohnMcLear рдЦрд╛рд▓реА рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде Etherpad 1.8.6 рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдкрд░, рдПрдХ рдирдпрд╛ рд╕реНрдХреАрдорд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдмрд┐рдирд╛ рдЕрдкрд╡рд╛рдж рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИред
рдЬрдм рдореИрдВ рдкреБрд░рд╛рдиреЗ рд╕реНрдХреАрдо рдХреЗ рд╕рд╛рде рдирдП рд╕реНрдХреАрдорд╛ рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд▓рддреЗ рд╣реИрдВ:
diff --git a/etherpad_schema.sql b/etherpad_schema_new.sql
index 9baf5f4..ad3c08b 100644
--- a/etherpad_schema.sql
+++ b/etherpad_schema_new.sql
@@ -41,17 +41,6 @@ CREATE FUNCTION public.ueberdb_insert_or_update(character varying, text) RETURNS
ALTER FUNCTION public.ueberdb_insert_or_update(character varying, text) OWNER TO etherpad;
---
--- Name: ueberdb_insert_or_update_jsonb(character varying, jsonb); Type: FUNCTION; Schema: public; Owner: etherpad
---
-
-CREATE FUNCTION public.ueberdb_insert_or_update_jsonb(character varying, jsonb) RETURNS void
- LANGUAGE plpgsql
- AS $_$ BEGIN IF EXISTS( SELECT * FROM store WHERE key = $1 ) THEN UPDATE store SET value = $2 WHERE key = $1; ELSE INSERT INTO store(key,value) VALUES( $1, $2 ); END IF; RETURN; END; $_$;
-
-
-ALTER FUNCTION public.ueberdb_insert_or_update_jsonb(character varying, jsonb) OWNER TO etherpad;
-
SET default_tablespace = '';
SET default_with_oids = false;
@@ -62,7 +51,7 @@ SET default_with_oids = false;
CREATE TABLE public.store (
key character varying(100) NOT NULL,
- value jsonb NOT NULL
+ value text NOT NULL
);
рддреЛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ: рдЬрдм рдХреЙрд▓рдо рдХрд╛ рдкреНрд░рдХрд╛рд░ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рд╡рд┐рд╕реНрдерд╛рдкрд┐рдд / рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╣реИ?
рдореИрдВрдиреЗ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рд╕реЗ рдЕрдкрдиреЗ рдПрдерд░рдкреИрдб рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЕрдкрдбреЗрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реИред
@ c7hm4r @qsuscs рдЕрдкрдорд╛рдирдЬрдирдХ рдХрдорд╛рдиреЛрдВ рдХреЗ рд▓реЗрдЦрдХ рдереЗред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╡рд╣ рдпрд╣рд╛рдБ рдХреБрдЫ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдорджрдж рдХрд░рддрд╛ рд╣реИ :)
https://github.com/ether/ueberDB/commit/b9e786e2c8753f4cbbe09d3695a92a1a03904ead#diff -f1b8245dd259fa912c33cb2db527f609R31 рдмрджрд▓рдиреЗ рдмрдпрд╛рди рд╣реИ ..
var updateValueColumnType = "ALTER TABLE store " +
"ALTER COLUMN value " +
"TYPE jsonb " +
"USING value::jsonb";
рдПрдХ рдорд╛рди рд▓реЗрдВрдЧреЗ рдХрд┐ рдЬрдмреНрдмрди рдХреЛ рдкрд╛рда рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?
рдзрдиреНрдпрд╡рд╛рдж @JohnMcLear , рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдпрд╣ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
alter table "store" alter column "value" type text;
@ c7hm4r рдХреЛрдИ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореБрдЯреНрдареА рднрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рдЬреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдзрдиреНрдпрд╡рд╛рдж @JohnMcLear , рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдпрд╣ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: