Hi Andre,

Yes, here is the issue: https://github.com/influitive/apartment/issues/532 
<https://github.com/influitive/apartment/issues/532>

It happens if you configured apartment with use_sql=true, which means it clones 
the schema from pg_dump. My first attempt was to “fix” the script generated by 
pg_dump, but I feel it will be a mess. We solved our issue going back to 
use_sql=false, which is the default (creates the schema from db/schema.rb). But 
there is people that have other requirements, like functions, so the easier way 
for them is to keep use_sql and replace strings in the script.


Cheers,

> On Mar 9, 2018, at 11:51 AM, Andre Oliveira Freitas 
> <afrei...@callixbrasil.com> wrote:
> 
> Hello Aldrin,
> 
> I'm also using apartment with postgresql 9.6.6, and I don't see any
> issue with it. Are you using Apartment::Tenant.create?
> 
> 2018-03-09 10:26 GMT-03:00 Aldrin Martoq Ahumada <aldrin.mar...@gmail.com>:
>> Hi,
>> 
>> For a multi tenant system, we are using the following command to blindly
>> clone a schema into another:
>> pg_dump -s -x -O -n #{default_tenant} #{dbname}
>> 
>> 
>> This is done for us by a rails gem, which then feeds that script into the
>> new created schema for the new tenant.
>> https://github.com/influitive/apartment/blob/80a21f2e1cdcbe5b0bd976f88c14332657804536/lib/apartment/adapters/postgresql_adapter.rb#L150
>> 
>> 
>> 
>> 
>> When we upgraded from 9.5.11 to 9.5.12, the format of the dump changed (it
>> now always appends the schema name), so this is broken. We could patch the
>> SQL generated, but that’s not a generic/robust solution.
>> 
>> # pg_dump postgresql 9.5.11
>> SET search_path = public, pg_catalog;
>> CREATE TABLE ahoy_events (
>>    id bigint NOT NULL,
>>    visit_id integer,
>>    user_id integer,
>>    name character varying,
>>    properties jsonb,
>>    "time" timestamp without time zone
>> );
>> 
>> # pg_dump postgresql 9.5.12
>> CREATE TABLE public.ahoy_events (
>>    id bigint NOT NULL,
>>    visit_id integer,
>>    user_id integer,
>>    name character varying,
>>    properties jsonb,
>>    "time" timestamp without time zone
>> );
>> 
>> 
>> 
>> Thinking in the long term, how could be the best way to clone a schema into
>> another?
>> 
>> 
>> 
>> 
>> —
>> Aldrin
>> 
> 
> 
> 
> -- 
> 
> André Luis O. Freitas
> System Architect
> 
> Rua do Rócio, 220 - Cj. 72
> São Paulo - SP - 04552-000
> 55 11 4063 4222
> 
> afrei...@callix.com.br
> www.callix.com.br

Reply via email to