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 <postgre...@yawebhost.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
*