# PostgreSQL Only Browse Public Schema

**URL:** <https://forum.inductiveautomation.com/t/postgresql-only-browse-public-schema/91412>\
**Category:** Ignition\
**Tags:** ignition81\
**Created:** [June 5, 2024, 2:11pm UTC](https://forum.inductiveautomation.com/t/postgresql-only-browse-public-schema/91412 "2024-06-05T14:11:00Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![brandon1](https://avatars.discourse-cdn.com/v4/letter/b/ea666f/32.png) [@brandon1](https://forum.inductiveautomation.com/u/brandon1)\
**Post date:** [June 5, 2024, 2:11pm UTC](https://forum.inductiveautomation.com/t/postgresql-only-browse-public-schema/91412/1 "2024-06-05T14:11:00Z")

</div>

We are doing some testing with PostgreSQL and Timescale and I am finding that when we connect to the database that has Timescale configured Ignition is browsing dozens of tables in specific schemas that Timescale made.

My question is, how do I tell Ignition in the database connection string to only browse the public schema that contains the actual Ignition tables? I have tried setting the search\_path to public for my ignition user configured in PostgreSQL and I have also tired setting ?currentSchema=public in the Ignition db connect string.

Should I be using the extra connection properties field instead? Thanks!

---

<div class="post-metadata">

**Author:** ![danieltalbot](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/danieltalbot/32/11201_2.png) [@danieltalbot](https://forum.inductiveautomation.com/u/danieltalbot)\
**Post date:** [June 5, 2024, 3:14pm UTC](https://forum.inductiveautomation.com/t/postgresql-only-browse-public-schema/91412/2 "2024-06-05T15:14:46Z")

</div>

What is the actual connection url?  
I have a postgres connection set up like this:  
connect url: jdbc:postgresql://localhost:5432/ignition  
extra connection properties: currentSchema=public

---

<div class="post-metadata">

**Author:** ![brandon1](https://avatars.discourse-cdn.com/v4/letter/b/ea666f/32.png) [@brandon1](https://forum.inductiveautomation.com/u/brandon1)\
**Post date:** [June 5, 2024, 3:54pm UTC](https://forum.inductiveautomation.com/t/postgresql-only-browse-public-schema/91412/3 "2024-06-05T15:54:37Z")

</div>

The connection URL is: postgresql://xxx.xxx.xxx.xxx:5432/test  
extra connection properties: currentSchema=public

EDIT:

As you can see even with this setup there are a lot of extra tables that are coming from other schemas:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/a/c/ac09e657312bd7dde547683cff46557d6a82eb7d.png)

---

<div class="post-metadata">

**Author:** ![mcarritt1](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mcarritt1/32/4262_2.png) [@mcarritt1](https://forum.inductiveautomation.com/u/mcarritt1)\
**Post date:** [November 4, 2024, 2:32pm UTC](https://forum.inductiveautomation.com/t/postgresql-only-browse-public-schema/91412/4 "2024-11-04T14:32:29Z")

</div>

did you ever find any solution? I want to do something similar, I want to create a new schema in timescale, and a single database connection to only that, and hide all of the public tables. the currentSchema prop seems to prevent the system from interacting with those other tables , but they still show up in the list and its a bit messy.

one thing that can be done is in the database translator, you can set it to exclude certain table names like _hyper_ and those wont show up but theres still a lot of other noise.

---

<div class="post-metadata">

**Author:** ![brandon1](https://avatars.discourse-cdn.com/v4/letter/b/ea666f/32.png) [@brandon1](https://forum.inductiveautomation.com/u/brandon1)\
**Post date:** [November 4, 2024, 3:00pm UTC](https://forum.inductiveautomation.com/t/postgresql-only-browse-public-schema/91412/5 "2024-11-04T15:00:33Z")

</div>

No I did not. In fact, we found that the Timescale was about the same performance as MSSQL so it was not worth continuing to fight it.

---

<div class="post-metadata">

**Author:** ![pascal.fragnoud](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pascal.fragnoud/32/24728_2.png) [@pascal.fragnoud](https://forum.inductiveautomation.com/u/pascal.fragnoud)\
**Post date:** [April 22, 2025, 9:55am UTC](https://forum.inductiveautomation.com/t/postgresql-only-browse-public-schema/91412/6 "2025-04-22T09:55:48Z")

</div>

I'm in that same situation.  
Did you find a solution to this ?

---

<div class="post-metadata">

**Author:** ![brandon1](https://avatars.discourse-cdn.com/v4/letter/b/ea666f/32.png) [@brandon1](https://forum.inductiveautomation.com/u/brandon1)\
**Post date:** [April 22, 2025, 12:15pm UTC](https://forum.inductiveautomation.com/t/postgresql-only-browse-public-schema/91412/7 "2025-04-22T12:15:22Z")

</div>

No, I did not find a fix. We ultimately ended up using MariaDB and that has been working really well.

---

<div class="post-metadata">

**Author:** ![Benjamin\_Furlani](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/benjamin_furlani/32/66084_2.png) [@Benjamin\_Furlani](https://forum.inductiveautomation.com/u/Benjamin_Furlani)\
**Post date:** [April 22, 2025, 12:40pm UTC](https://forum.inductiveautomation.com/t/postgresql-only-browse-public-schema/91412/8 "2025-04-22T12:40:49Z")

</div>

did you mark the setting to use fully qualified names?

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/c/c/ccee88bcb6af0af8c46228428d047df684fe16c6.png)

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/b/6/b648f30b0536fa801ad334ce393cbea267559fde.png)

---

<div class="post-metadata">

**Author:** ![pascal.fragnoud](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pascal.fragnoud/32/24728_2.png) [@pascal.fragnoud](https://forum.inductiveautomation.com/u/pascal.fragnoud)\
**Post date:** [April 22, 2025, 12:45pm UTC](https://forum.inductiveautomation.com/t/postgresql-only-browse-public-schema/91412/9 "2025-04-22T12:45:22Z")

</div>

It shows the full name, but I'd like to filter out anything that's not in a particular schema.  
ie:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/0/2/024a7c3c21dc06009b7186671b0eb1a866fd7b22.png)

In this case, I'm only interested in what's in the `public` schema.

---

<div class="post-metadata">

**Author:** ![Benjamin\_Furlani](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/benjamin_furlani/32/66084_2.png) [@Benjamin\_Furlani](https://forum.inductiveautomation.com/u/Benjamin_Furlani)\
**Post date:** [April 22, 2025, 12:54pm UTC](https://forum.inductiveautomation.com/t/postgresql-only-browse-public-schema/91412/10 "2025-04-22T12:54:45Z")

</div>

_If I would just read the whole post..._

Do you need to access other schemas with that user? I wonder if you could just grant the user permission to just have access to `[public]`

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [April 22, 2025, 1:13pm UTC](https://forum.inductiveautomation.com/t/postgresql-only-browse-public-schema/91412/11 "2025-04-22T13:13:53Z")

</div>

Have you tried using a connection initialization command? (Advanced setting.) Perhaps:

```python
SET SCHEMA 'public';

```

Or perhaps:

```python
SET search_path = 'public, some_other_schema';

```

---

<div class="post-metadata">

**Author:** ![Benjamin\_Furlani](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/benjamin_furlani/32/66084_2.png) [@Benjamin\_Furlani](https://forum.inductiveautomation.com/u/Benjamin_Furlani)\
**Post date:** [April 22, 2025, 1:18pm UTC](https://forum.inductiveautomation.com/t/postgresql-only-browse-public-schema/91412/12 "2025-04-22T13:18:07Z")

</div>

did a quick test and this also does not do the trick.

May be something that needs a support ticket opened..

---

<div class="post-metadata">

**Author:** ![mcarritt1](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mcarritt1/32/4262_2.png) [@mcarritt1](https://forum.inductiveautomation.com/u/mcarritt1)\
**Post date:** [July 30, 2025, 2:24pm UTC](https://forum.inductiveautomation.com/t/postgresql-only-browse-public-schema/91412/13 "2025-07-30T14:24:09Z")

</div>

we do this in the connection string, and it limits what the user can interact with on that connection to it, but it still lists all the tables from every schema. I dont think theres any way to fix it, it seems the list is being populated by asking the database what tables are available, not which ones are in that schema.
