# PGEngine

> **Class** in `langchain_postgres`

📖 [View in docs](https://reference.langchain.com/python/langchain-postgres/v2/engine/PGEngine)

A class for managing connections to a Postgres database.

## Signature

```python
PGEngine(
    self,
    key: object,
    pool: AsyncEngine,
    loop: Optional[asyncio.AbstractEventLoop],
    thread: Optional[Thread],
)
```

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `key` | `object` | Yes | Prevent direct constructor usage. |
| `pool` | `AsyncEngine` | Yes | Async engine connection pool. |
| `loop` | `Optional[asyncio.AbstractEventLoop]` | Yes | Async event loop used to create the engine. |
| `thread` | `Optional[Thread]` | Yes | Thread used to create the engine async. |

## Constructors

```python
__init__(
    self,
    key: object,
    pool: AsyncEngine,
    loop: Optional[asyncio.AbstractEventLoop],
    thread: Optional[Thread],
) -> None
```

| Name | Type |
|------|------|
| `key` | `object` |
| `pool` | `AsyncEngine` |
| `loop` | `Optional[asyncio.AbstractEventLoop]` |
| `thread` | `Optional[Thread]` |


## Methods

- [`from_engine()`](https://reference.langchain.com/python/langchain-postgres/v2/engine/PGEngine/from_engine)
- [`from_connection_string()`](https://reference.langchain.com/python/langchain-postgres/v2/engine/PGEngine/from_connection_string)
- [`close()`](https://reference.langchain.com/python/langchain-postgres/v2/engine/PGEngine/close)
- [`ainit_vectorstore_table()`](https://reference.langchain.com/python/langchain-postgres/v2/engine/PGEngine/ainit_vectorstore_table)
- [`init_vectorstore_table()`](https://reference.langchain.com/python/langchain-postgres/v2/engine/PGEngine/init_vectorstore_table)
- [`adrop_table()`](https://reference.langchain.com/python/langchain-postgres/v2/engine/PGEngine/adrop_table)
- [`drop_table()`](https://reference.langchain.com/python/langchain-postgres/v2/engine/PGEngine/drop_table)

---

[View source on GitHub](https://github.com/langchain-ai/langchain-postgres/blob/9d819182da7e3fb1b815e6c9a6b7c2cd1eb4bc0e/langchain_postgres/v2/engine.py#L43)