From: | postgresql(at)yawebhost(dot)com |
---|---|
To: | Akshay Joshi <akshay(dot)joshi(at)enterprisedb(dot)com>, postgresql(at)yawebhost(dot)com |
Cc: | "pgadmin-support lists(dot)postgresql(dot)org" <pgadmin-support(at)lists(dot)postgresql(dot)org> |
Subject: | Re: schema diff tool problem with owner statements |
Date: | 2021-11-12 15:17:03 |
Message-ID: | 0100017d14b93aa1-4d7b2f11-0109-42fd-b85d-2daf6f86f6cc-000000@email.amazonses.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgadmin-support |
Thanks for the reply, comment embedded below:
On 11/11/21 11:58 PM, Akshay Joshi wrote:
> Hi
>
> On Fri, Nov 12, 2021 at 12:45 AM <postgresql(at)yawebhost(dot)com> wrote:
>
> I'm trying to compare 2 schemas (devschema is the source and
> testschema
> is the target) and generate a script that can be run on the target
> that
> will create the missing tables. I ran the schema diff, and it
> generated
> items like this:
>
> CREATE TABLE IF NOT EXISTS tablename
> (
> fields, etc
> )
> TABLESPACE pg_default;
>
> ALTER TABLE IF EXISTS public.tablename
> OWNER to devschema;
>
>
> When I run the script on testschema, I don't want it trying to
> alter the
> owner of the table because that statement will fail anyway.
>
> I found a setting in "preferences" called "ignore owner", and set
> it to
> true (If set to True, then the Schema Diff tool ignores the owner
> while
> comparing the objects.)
>
> However, this setting has no effect. The alter table statements
> still
> get generated, and I am left to remove them manually.
>
> If there is something I'm doing wrong please let me now. I swear
> this
> setting worked many months ago when I used this tool, but it seems to
> not be working now.
>
> Version 6.1 (downloaded and updated today)
>
>
> This is by design, as at the time of comparison or generating the
> script we can't check the owner is exist on the target schema or not.
> Consider the case where the owner exists and the user wants to run the
> same DDL statement. I think the user needs to manually change the ow
> ner. There is a find and replace option in the query tool by which we
> can easily replace.
Maybe I'm missing something (I don't know a lot about postgres
internals, all I want is to copy tables over). That setting in the
preferences SEEMS to be what I need here. I'd simply like the diff tool
to ignore the differences in the owner, and not generate the "ALTER
TABLE IF EXISTS public.tablename OWNER to devschema;" statement. My
script will run fine on the target if I delete all those alter table
statements, and it will also run fine if I search and replace
'devschema' with 'testschema', but I'd rather not have to do either of
those. Isn't this a common use case when the user wants to get 2
schemas "in sync" but they don't care about the fact that the owner of
the objects on the source and target is different..?
>
> Thank you,
>
> Wes
>
>
>
>
>
> --
> *Thanks & Regards*
> *Akshay Joshi*
> *pgAdmin Hacker | Principal Software Architect*
> *EDB Postgres <http://edbpostgres.com>*
> *Mobile: +91 976-788-8246
> *
From | Date | Subject | |
---|---|---|---|
Next Message | toni incog | 2021-11-13 15:48:12 | Re: pgadmin4 for fedora 35 |
Previous Message | Akshay Joshi | 2021-11-12 05:58:30 | Re: schema diff tool problem with owner statements |