Доброго времени суток, столкнулся с такой проблемой, я пишу простенький скрипт на bash, и у меня возникла проблема с регистрами букв наименования баз данных.
Есть linux ubuntu server, на нем 1с + postgres... пишу скрипт для автоматизации разворачивания тестовых баз.
#!/bin/bash
basename="OtchetLena"
service srv1cv83 stop
psql -U postgres -c "DROP DATABASE "$basename;""
psql -U postgres -c "CREATE DATABASE "$basename;""
pg_dump -U postgres $basename | pigz << /backup$basename.sql.gz
Проблема в том что при выполнении скрипта на третьей строчке постгрес пытается удалить не базу OtchetLena, а otchetlena, соответственно из-за разницы регистров не находит ее и ругается что не может ее грохнуть...
Может быть кто-нибудь сможет подсказать как передать постгресу наименование базы с учетом регистра?
у нас много разных баз и многие из них имеют имена в разных регистрах... в данном примере база для тестирования отчетов.
В мануале давно всё про это
В мануале давно всё про это написано:
http://postgresql.ru.net/manual/sql-syntax-lexical.html#SQL-SYNTAX-IDENT...
Тоесть я правильно понял
Тоесть я правильно понял написанное в мануале что что бы учитывался регистр нужно использовать двойные ковычки, которые экранируют переменную. в итоге скрипт должен выглядеть как-то так:
#!/bin/bash
basename="OtchetLena"
service srv1cv83 stop
psql -U postgres -c "DROP DATABASE ""$basename;"""
или вот так :
#!/bin/bash
basename=""OtchetLena""
service srv1cv83 stop
psql -U postgres -c "DROP DATABASE "$basename;""
??
Типа того. Чего спрашивать,
Типа того.
Чего спрашивать, пробуйте!