@pvh Check.

@deafbybeheading I thought about using some kind of physical property of the relations, such as their size in tuples, but realized that this was vulnerable to race conditions.

The problem with --clean is that it produces a heap of "harmless" errors that need to be ignored by the user when the object being dropped doesn't actually exist (i.e. Almost all the time).

The problem with --create is that you cannot control the name of the newly created database - it will have the name of the database on Heroku rather than the one specified in the URI. The database you specify is only used to create the new database, before immediately connecting to that database.

I had a bunch of others ideas, like "How about we *also* check that the tuples returned by this command on each database don't match"...: 

select name, setting from pg_settings where category = 'File Locations' order by name;

or:

select pg_ls_dir('')

...but these fall down on the grounds of version compatibility, and needing superuser.

I'm sure that there has to be a better way. Not anything like a well-principled way, but less of a kludge.