| From: | Julien Rouhaud <rjuju123(at)gmail(dot)com> |
|---|---|
| To: | Ron <ronljohnsonjr(at)gmail(dot)com> |
| Cc: | "pgsql-generallists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: Script checking to see what database it's connected to |
| Date: | 2021-02-22 01:19:37 |
| Message-ID: | CAOBaU_Yq3vi_RuUgrPYgpruVxxBLqOAfhTCG0x+0knZ-Q6_Gwg@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On Mon, Feb 22, 2021 at 9:00 AM Ron <ronljohnsonjr(at)gmail(dot)com> wrote:
>
> On 2/21/21 5:26 PM, Julien Rouhaud wrote:
>
> On Mon, Feb 22, 2021 at 7:19 AM Ron <ronljohnsonjr(at)gmail(dot)com> wrote:
>
> Thus, I want to add a bit to the top of the script, something like this:
>
> \if :DBNAME = postgres
> echo "must not run in postgres"
> exit
> \endif
>
> However, I can't seem to find the magic sauce.
>
> You have to use a dedicated variable. Something like
>
> SELECT :'DBNAME' = 'postgres' AS is_postgres \gset
>
>
> That works...
>
> \if :is_postgres
> [...]
>
>
> That almost works,
>
> My script:
> $ cat test_pg.sql
> SELECT :'DBNAME' = 'postgres' AS is_postgres \gset
> \echo :is_postgres
> \if :is_postgres
> \echo 'connected to postgres'
> exit
> \else
> \echo 'not connected to postgres'
> \endif
>
> The output:
> $ psql12 -f test_pg.sql
> t
> connected to postgres
> got here
> psql:test_pg.sql:15: ERROR: syntax error at or near "exit"
> LINE 1: exit
Well, the supported commands did work. You should probably look at
https://www.postgresql.org/docs/current/app-psql.html, you'd see that
"exit" is not a supported command and you should instead use \q[uit].
I recommend looking at the semantics of \quit though, given your next
message mentioning \include.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Jagmohan Kaintura | 2021-02-22 02:14:08 | PostgreSQL Statement Dependency Resolving | Schema Upgrade |
| Previous Message | Ron | 2021-02-22 01:03:41 | Re: Script checking to see what database it's connected to |