# Duplicate aliases

**URL:** <https://community.forestadmin.com/t/duplicate-aliases/6814>\
**Category:** Help me!\
**Created:** [November 3, 2023, 2:04pm UTC](https://community.forestadmin.com/t/duplicate-aliases/6814 "2023-11-03T14:04:35Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![dscreve](https://avatars.discourse-cdn.com/v4/letter/d/5e9695/32.png) [@dscreve](https://community.forestadmin.com/u/dscreve)\
**Post date:** [November 3, 2023, 2:04pm UTC](https://community.forestadmin.com/t/duplicate-aliases/6814/1 "2023-11-03T14:04:35Z")

</div>

Hello,

In a table, I have 2 columns which are foreign keys to same table, and generated schema create error at runtime :

warning: Skipping relation “partner.partners\_through\_partner\_contract\_templates” because of error: You have used the alias partners\_through\_partner\_contract\_templates in two separate associations. Aliased associations must have unique aliases.

How can I fix this ?

Regards,

David

---

<div class="post-metadata">

**Author:** ![nbouliol](https://dub1.discourse-cdn.com/flex013/user_avatar/community.forestadmin.com/nbouliol/32/5777_2.png) [@nbouliol](https://community.forestadmin.com/u/nbouliol)\
**Post date:** [November 3, 2023, 2:43pm UTC](https://community.forestadmin.com/t/duplicate-aliases/6814/2 "2023-11-03T14:43:16Z")

</div>

Hello @dscreve

Which datasource are you using ?

---

<div class="post-metadata">

**Author:** ![dscreve](https://avatars.discourse-cdn.com/v4/letter/d/5e9695/32.png) [@dscreve](https://community.forestadmin.com/u/dscreve)\
**Post date:** [November 3, 2023, 2:57pm UTC](https://community.forestadmin.com/t/duplicate-aliases/6814/3 "2023-11-03T14:57:39Z")

</div>

createSqlDataSource and createSequelizeDataSource

---

<div class="post-metadata">

**Author:** ![nbouliol](https://dub1.discourse-cdn.com/flex013/user_avatar/community.forestadmin.com/nbouliol/32/5777_2.png) [@nbouliol](https://community.forestadmin.com/u/nbouliol)\
**Post date:** [November 3, 2023, 3:27pm UTC](https://community.forestadmin.com/t/duplicate-aliases/6814/4 "2023-11-03T15:27:55Z")

</div>

Thank you.

The error seems to be related to Sequelize, I think you have the same alias on 2 relations.

Modifying one of the aliases might fix your issue.

---

<div class="post-metadata">

**Author:** ![dscreve](https://avatars.discourse-cdn.com/v4/letter/d/5e9695/32.png) [@dscreve](https://community.forestadmin.com/u/dscreve)\
**Post date:** [November 3, 2023, 5:26pm UTC](https://community.forestadmin.com/t/duplicate-aliases/6814/5 "2023-11-03T17:26:19Z")

</div>

Actually I have not modified anything…this is an auto-generated alias.  
How can I change it ? (I’m not expert of Sequelize indeed).

---

<div class="post-metadata">

**Author:** ![nbouliol](https://dub1.discourse-cdn.com/flex013/user_avatar/community.forestadmin.com/nbouliol/32/5777_2.png) [@nbouliol](https://community.forestadmin.com/u/nbouliol)\
**Post date:** [November 6, 2023, 9:53am UTC](https://community.forestadmin.com/t/duplicate-aliases/6814/6 "2023-11-06T09:53:44Z")

</div>

Hello @dscreve

What generated the sequelize models ?

Is `partner` one of the models you use with the sequelize datasource ?

---

<div class="post-metadata">

**Author:** ![dscreve](https://avatars.discourse-cdn.com/v4/letter/d/5e9695/32.png) [@dscreve](https://community.forestadmin.com/u/dscreve)\
**Post date:** [November 6, 2023, 10:09am UTC](https://community.forestadmin.com/t/duplicate-aliases/6814/7 "2023-11-06T10:09:19Z")

</div>

I don’t have written anything for those tables :

```sql
CREATE TABLE IF NOT EXISTS public.partner
(
    id BIGSERIAL NOT NULL,
    external_id TEXT NOT NULL,
    code text NOT NULL,
    label text NOT NULL,
    customer_service_email TEXT,
);

CREATE TABLE IF NOT EXISTS public.partner_contract_templates (
	warranty_partner_id BIGINT NOT NULL,
	lender_partner_id BIGINT NOT NULL,
	pledge_template_res_path TEXT
);

```

But it seems the alias is generated in .forestadmin.schema.json…I don’t know how to customise this.

David

---

<div class="post-metadata">

**Author:** ![anon7284711](https://avatars.discourse-cdn.com/v4/letter/a/ac8455/32.png) [@anon7284711](https://community.forestadmin.com/u/anon7284711)\
**Post date:** [November 6, 2023, 10:55am UTC](https://community.forestadmin.com/t/duplicate-aliases/6814/8 "2023-11-06T10:55:25Z")

</div>

Hello @dscreve,

Could you please share the relations you have defined on your `partner_contract_templates` table ?  
My first guess is that the constraints you have defined to the `partner` table have duplicated names which causes errors on introspection.

Best regards,

---

<div class="post-metadata">

**Author:** ![dscreve](https://avatars.discourse-cdn.com/v4/letter/d/5e9695/32.png) [@dscreve](https://community.forestadmin.com/u/dscreve)\
**Post date:** [November 6, 2023, 11:09am UTC](https://community.forestadmin.com/t/duplicate-aliases/6814/9 "2023-11-06T11:09:40Z")

</div>

Here there are :

```sql
ALTER TABLE public.partner_contract_templates ADD CONSTRAINT pk_partner_contract_templates PRIMARY KEY(warranty_partner_id,lender_partner_id);

ALTER TABLE ONLY public.partner_contract_templates ADD CONSTRAINT fk_partner_contract_templates_warranty_partner_id
     FOREIGN KEY (warranty_partner_id) REFERENCES public.partner(id) ON DELETE CASCADE;

ALTER TABLE ONLY public.partner_contract_templates ADD CONSTRAINT fk_partner_contract_templates_lender_partner_id
     FOREIGN KEY (lender_partner_id) REFERENCES public.partner(id) ON DELETE CASCADE;

```

Regards,

---

<div class="post-metadata">

**Author:** ![anon7284711](https://avatars.discourse-cdn.com/v4/letter/a/ac8455/32.png) [@anon7284711](https://community.forestadmin.com/u/anon7284711)\
**Post date:** [November 6, 2023, 1:35pm UTC](https://community.forestadmin.com/t/duplicate-aliases/6814/10 "2023-11-06T13:35:46Z")

</div>

I tried to replicate your setup via the queries you provided, I have no issue making it work with the `createSqlDataSource`, on which version of this package do you experience this issue ?

> [@dscreve](#):
>
> createSqlDataSource and createSequelizeDataSource

I am also wondering why and how you are using 2 different dataSources

---

<div class="post-metadata">

**Author:** ![dscreve](https://avatars.discourse-cdn.com/v4/letter/d/5e9695/32.png) [@dscreve](https://community.forestadmin.com/u/dscreve)\
**Post date:** [November 6, 2023, 2:17pm UTC](https://community.forestadmin.com/t/duplicate-aliases/6814/11 "2023-11-06T14:17:54Z")

</div>

I don’t know…Some parts of this code has been written by someone else…I think my colleague wrote this code with some people from the support.

Actually, some views have Sequelize customizations, that maybe the reason Sequelize is also used.

---

<div class="post-metadata">

**Author:** ![dscreve](https://avatars.discourse-cdn.com/v4/letter/d/5e9695/32.png) [@dscreve](https://community.forestadmin.com/u/dscreve)\
**Post date:** [November 6, 2023, 2:23pm UTC](https://community.forestadmin.com/t/duplicate-aliases/6814/12 "2023-11-06T14:23:16Z")

</div>

Here are the versions I’m using :

“@forestadmin/agent”: “^1.35.17”,  
“@forestadmin/datasource-sequelize”: “^1.5.24”,  
“@forestadmin/datasource-sql”: “^1.7.39”,

---

<div class="post-metadata">

**Author:** ![anon7284711](https://avatars.discourse-cdn.com/v4/letter/a/ac8455/32.png) [@anon7284711](https://community.forestadmin.com/u/anon7284711)\
**Post date:** [November 6, 2023, 2:56pm UTC](https://community.forestadmin.com/t/duplicate-aliases/6814/13 "2023-11-06T14:56:40Z")

</div>

I still cannot reproduce with `datasource-sql: ^1.7.39`  
Let’s try to single out the datasource causing this issue in your configuration, could you please start the agent with one datasource at a time ?

---

<div class="post-metadata">

**Author:** ![dscreve](https://avatars.discourse-cdn.com/v4/letter/d/5e9695/32.png) [@dscreve](https://community.forestadmin.com/u/dscreve)\
**Post date:** [November 6, 2023, 3:10pm UTC](https://community.forestadmin.com/t/duplicate-aliases/6814/14 "2023-11-06T15:10:26Z")

</div>

If I keep only one datasource, some collections are missing…

---

<div class="post-metadata">

**Author:** ![anon7284711](https://avatars.discourse-cdn.com/v4/letter/a/ac8455/32.png) [@anon7284711](https://community.forestadmin.com/u/anon7284711)\
**Post date:** [November 6, 2023, 3:24pm UTC](https://community.forestadmin.com/t/duplicate-aliases/6814/15 "2023-11-06T15:24:47Z")

</div>

I am sorry if It was not clear, I am suggesting you to start your agent on your development environment with only one datasource at a time to check which one logs the warning `Skipping relation “partner.partners_through_partner_contract_templates”`. This is only temporary so as to not investigate on the wrong datasource.  
As the sqlDataSource does the introspection on its own and the sequelizeDataSource works based on the sequelize instance with loaded models (and their configuration) that you pass as parameter.

If you are unable to start your agent with only one datasource because of customizations that require collections from both datasources, we can simply check any customizations or models defined for your table `partner_contract_templates`

---

<div class="post-metadata">

**Author:** ![dscreve](https://avatars.discourse-cdn.com/v4/letter/d/5e9695/32.png) [@dscreve](https://community.forestadmin.com/u/dscreve)\
**Post date:** [November 6, 2023, 3:45pm UTC](https://community.forestadmin.com/t/duplicate-aliases/6814/16 "2023-11-06T15:45:55Z")

</div>

I have removed collection customization to be able to run it…Problem does not occurs If I use createSequelizeDataSource, but it still remains if I use createSqlDataSource.

Regards,

---

<div class="post-metadata">

**Author:** ![anon7284711](https://avatars.discourse-cdn.com/v4/letter/a/ac8455/32.png) [@anon7284711](https://community.forestadmin.com/u/anon7284711)\
**Post date:** [November 7, 2023, 8:58am UTC](https://community.forestadmin.com/t/duplicate-aliases/6814/17 "2023-11-07T08:58:13Z")

</div>

Hello @dscreve,

Thanks for the additional information.  
Sadly I still couldn’t reproduce the issue, if you are comfortable with it, could you please send me a backup of your database only containing the structure, no data, via private message.

---

<div class="post-metadata">

**Author:** ![dscreve](https://avatars.discourse-cdn.com/v4/letter/d/5e9695/32.png) [@dscreve](https://community.forestadmin.com/u/dscreve)\
**Post date:** [November 7, 2023, 10:17am UTC](https://community.forestadmin.com/t/duplicate-aliases/6814/18 "2023-11-07T10:17:47Z")

</div>

I cannot do that…I can pass some command for you, but I can’t send entire database structure.

---

<div class="post-metadata">

**Author:** ![anon7284711](https://avatars.discourse-cdn.com/v4/letter/a/ac8455/32.png) [@anon7284711](https://community.forestadmin.com/u/anon7284711)\
**Post date:** [November 7, 2023, 10:35am UTC](https://community.forestadmin.com/t/duplicate-aliases/6814/19 "2023-11-07T10:35:46Z")

</div>

I understand, then if you could provide as many information on your partner and partner\_contract\_templates tables that would help greatly.

As well as the database you are using and its version.

---

<div class="post-metadata">

**Author:** ![dscreve](https://avatars.discourse-cdn.com/v4/letter/d/5e9695/32.png) [@dscreve](https://community.forestadmin.com/u/dscreve)\
**Post date:** [November 7, 2023, 2:55pm UTC](https://community.forestadmin.com/t/duplicate-aliases/6814/20 "2023-11-07T14:55:02Z")

</div>

I found the problem and fixed it…

I had the following tables :

CREATE TABLE IF NOT EXISTS public.partner  
(  
id BIGSERIAL NOT NULL,  
external\_id TEXT NOT NULL,  
code text NOT NULL,  
label text NOT NULL,  
);

CREATE TABLE IF NOT EXISTS public.partner\_contract\_templates (  
warranty\_partner\_id BIGINT NOT NULL,  
lender\_partner\_id BIGINT NOT NULL,  
);

CREATE TABLE IF NOT EXISTS public.acceptable\_lender\_warranty\_partnership (  
warranty\_partner\_id BIGINT NOT NULL,  
lender\_partner\_id BIGINT NOT NULL  
);

public.partner\_contract\_templates and public.acceptable\_lender\_warranty\_partnership have foreign keys to partner table with same field name. This was causing trouble when Sequelize generate reverse relation.

I have renamed fields like below and it works fine now :  
CREATE TABLE IF NOT EXISTS public.acceptable\_lender\_warranty\_partnership (  
acceptable\_warranty\_partner\_id BIGINT NOT NULL,  
acceptable\_lender\_partner\_id BIGINT NOT NULL  
);

Anyway, thanks for your help,

David

[Next page](https://community.forestadmin.com/t/duplicate-aliases/6814.md?page=2)
