From f93a9bf19c0da0d1a442515ebae0baa7b9641907 Mon Sep 17 00:00:00 2001 From: Oleg Volchkov Date: Thu, 16 Oct 2025 13:47:13 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BA=D0=BB=D1=8E=D1=87=20--restrict-key=20=D0=B4=D0=BB=D1=8F?= =?UTF-8?q?=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D1=8B=20pgsql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/console/commands/pgsql.p | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/console/commands/pgsql.p b/lib/console/commands/pgsql.p index 9e359bb..1ebaff8 100644 --- a/lib/console/commands/pgsql.p +++ b/lib/console/commands/pgsql.p @@ -33,10 +33,10 @@ pfConsoleCommandWithSubcommands $self._settings[^self._parseConnectString[$self.CSQL.connectString]] ^self.assert($self._settings){"$self.CSQL.connectString" is an invalid connect string.} - ^self.assignSubcommand[dump file_name.sql [--gzip|--bzip2] [--tables=t1,tp*] [--ignore=t1,tp*] [--only-data] [--no-owner] [--clean] [--no-acl] [--format=plain] [--jobs=n] [--lock-wait-timeout=n] [--column-inserts];$dump][ + ^self.assignSubcommand[dump file_name.sql [--gzip|--bzip2] [--tables=t1,tp*] [--ignore=t1,tp*] [--only-data] [--no-owner] [--clean] [--no-acl] [--format=plain] [--jobs=n] [--lock-wait-timeout=n] [--column-inserts] [--restrict-key=restrict_key];$dump][ $.help[Dump data to file.] ] - ^self.assignSubcommand[schema [file_name] [--no-owner] [--clean] [--no-acl];$schema; + ^self.assignSubcommand[schema [file_name] [--no-owner] [--clean] [--no-acl] [--restrict-key=restrict_key];$schema; $.help[Dump a database schema.] ] ^self.assignSubcommand[table_schema table_name;$table_schema; @@ -79,6 +79,7 @@ pfConsoleCommandWithSubcommands ## aSwitches.lock-timeout — таймаут ожидания лока базы в милисекундах ## aSwitches.column-inserts — Выгружать данные таблиц в виде команд INSERT с явным указанием столбцов ## aSwitches.compress[уровень|метод[:строка_информации]] — Указывает метод и/или уровень сжатия. В качестве метода сжатия можно выбрать gzip, lz4, zstd или none (без сжатия). В качестве дополнительной информации можно передать параметры сжатия. +## aSwitches.restrict-key — использовать предоставленную строку в качестве ключа \restrict psql в выводе выгрузки $lFile[^aArgs.1.trim[]] ^if(def $lFile){ @@ -100,6 +101,10 @@ pfConsoleCommandWithSubcommands } } + ^if(^aSwitches.contains[restrict-key]){ + ^lOptions.append{--restrict-key=$aSwitches.[restrict-key]} + } + ^if(^aSwitches.contains[column-inserts]){ ^lOptions.append{--column-inserts} } @@ -170,6 +175,7 @@ pfConsoleCommandWithSubcommands ## aSwitches.no-owner — убрать владльца из схемы ## aSwitches.clean — выдать команды на очистку базы ## aSwitches.no-acl — не выдавать grant/revoke-команды. +## aSwitches.restrict-key — использовать предоставленную строку в качестве ключа \restrict psql в выводе выгрузки $lOptions[^self._defaultPsqlOptions[]] ^lOptions.append{--schema-only} @@ -185,6 +191,10 @@ pfConsoleCommandWithSubcommands ^lOptions.append{--no-acl} } + ^if(^aSwitches.contains[restrict-key]){ + ^lOptions.append{--restrict-key=$aSwitches.[restrict-key]} + } + $lFile[^aArgs.1.trim[]] $lPgdump[^file::exec[$self._pgdumpBin;$lEnv;$lOptions]] $response:status[$lPgdump.status]