<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
					xmlns:content="http://purl.org/rss/1.0/modules/content/"
					xmlns:wfw="http://wellformedweb.org/CommentAPI/"
					xmlns:atom="http://www.w3.org/2005/Atom"
				  >
<channel>
<atom:link rel="self"  type="application/rss+xml"  href="http://rulinux.net/rss_from_sect_4_subsect_10_thread_43201"  />
<title>rulinux.net - Форум - Talks - Перипетии восстановления схемы из pg_dump</title>
<link>http://rulinux.net/</link>
<description><![CDATA[Портал о GNU/Linux и не только]]></description>
<image><title>rulinux.net - Форум - Talks - Перипетии восстановления схемы из pg_dump</title>
<link>http://rulinux.net/</link>
<url>http://rulinux.net/rss_icon.png</url>
</image>
<item>
<title>Re:Перипетии восстановления схемы из pg_dump</title>
<link>https://rulinux.net/message.php?newsid=43201&amp;page=1#223142</link>
<guid>https://rulinux.net/message.php?newsid=43201&amp;page=1#223142</guid>
<pubDate>Sun, 04 Nov 2018 20:34:31 +0300</pubDate>
<description><![CDATA[<p>&gt; pg_dump делает один sql-файл, либо один файл в их бинарном формате, чего, обычно, достаточно. Как ты получил такое? 
<br><br>
Опцией &quot;-Fd&quot;, наверное. И вроде бы без &quot;--schema-only&quot;... Точно не скажу - скрипт сгинул вместе с хостом.
<br><br>
&gt; Точнее, зачем так?
<br><br>
Показалось, что это хорошая идея - скрипт отдельно, данные отдельно. Скрипт хотя бы обозримый получается.
<br><br>
&gt; С COPY всё ок, читаешь-то не ты, а демон БД, который работает под юзером postgres. 
<br><br>
Да? А в конструкции &quot;COPY config (id, name, value) FROM stdin;&quot; - демон БД будет из своего stdin читать? Не логично. Кстати, нафига они эту команду туда понавставили?</p>]]></description>
</item>
<item>
<title>Re:Перипетии восстановления схемы из pg_dump</title>
<link>https://rulinux.net/message.php?newsid=43201&amp;page=1#223141</link>
<guid>https://rulinux.net/message.php?newsid=43201&amp;page=1#223141</guid>
<pubDate>Sun, 04 Nov 2018 12:51:20 +0300</pubDate>
<description><![CDATA[<p><i>>файл restore.sql и несколько файлов цифра.dat </i><br> Откуда такие сложности?<br><br>pg_dump делает один sql-файл, либо один файл в их бинарном формате, чего, обычно, достаточно. Как ты получил такое? Точнее, зачем так?<br><br>С COPY всё ок, читаешь-то не ты, а демон БД, который работает под юзером postgres. </p>]]></description>
</item>
<item>
<title>Перипетии восстановления схемы из pg_dump</title>
<link>https://rulinux.net/message.php?newsid=43201&amp;page=1#223140</link>
<guid>https://rulinux.net/message.php?newsid=43201&amp;page=1#223140</guid>
<pubDate>Sun, 04 Nov 2018 08:33:02 +0300</pubDate>
<description><![CDATA[<p>Попробовал тут восстановить схему, сделанную pg_dump. 
<br><br>
Дамп выглядит так: есть файл restore.sql и несколько файлов цифра.dat - по одному на каждую таблицу, видимо.
<br><br>
Запустил из-под админа psql с restore.sql - не работает. Почитал что внутри - пишут мол, пути к файлам данных, лежащих тут же, рядом со скриптом восстановления  мы указали как $$PATH$$ - замените сами как-нибудь на правильные перед восстановлением. Т.е. файлы в скрипте поминаются как '$$PATH$$/3009.dat'. Ну, ОК, думаю, ща поменяю.. В результате такое заклинание пришлось мучительно изобретать:
<br>
<fieldset><legend>bash</legend><div class="highlight bash"><br />
<span class="kw2">sed</span> <span class="re5">-i</span> <span class="st0">&quot;s+\\<span class="es1">\$</span>\\<span class="es1">\$</span>PATH\\<span class="es1">\$</span>\\<span class="es1">\$</span>+<span class="es2">$PWD</span>+g&quot;</span> restore.sql<br />
&nbsp;</div></fieldset>
<br>
Блин педорасы, ну зачем доллары туда было совать? Мало других символов чтобы переменную выделить если она вообще нужна??
<br><br>
Идём дальше. Просто офигеть - зачем-то его дамп при восстановлении сносит схему public. Закомментировал. Запускаю снова - ругается что нет юзеров, которым должны быть даны права на объекты. Почему-то юзеры вот не забэкапились. Да ещё я овнеру другое имя дал. Фак. Переименовываю овнера в дампе, слава богу он не пересекается с именами объектов. Создаю отсутствующих юзеров. Запускаю снова - данные всё равно не восстанавливаются!
<br><br>
Смотрю как оно эти данные должны читаться:
<fieldset><legend>bash</legend><div class="highlight bash"><br />
COPY config <span class="br0">&#40;</span><span class="kw2">id</span>, name, value<span class="br0">&#41;</span> FROM stdin;<br />
\.<br />
COPY config <span class="br0">&#40;</span><span class="kw2">id</span>, name, value<span class="br0">&#41;</span> FROM <span class="st_h">'$$PATH$$/3009.dat'</span>;<br />
&nbsp;</div></fieldset>
Для начала не понимаю смысла вставлять загрузку из пустого STDIN. Ну хрен с ним, вроде ничего страшного делать не должно. Но что же с файлами? В измененном скрипте $$PATH$$ уже поменян на реальный полный путь к файлу, файл есть, я его владелец. Хм, _Я_ его владелец. Меняю владельца на постгрес - всё заработало. Ну вот какого хрена не прочитать файл с моими правами?
<br><br>
Вобщем мракобесие какое-то, а не backup/restore. Как люди с этим живут??
</p>]]></description>
</item>
</channel>
</rss>