Skip to content

Commit

Permalink
postgres integration
Browse files Browse the repository at this point in the history
  • Loading branch information
mathanmahe committed Nov 26, 2023
1 parent 334c8b1 commit fc08fd9
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 6 deletions.
25 changes: 25 additions & 0 deletions docs/postgres_setup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
## INSTRUCTIONS TO SET UP POSTGRES DATABASE

These were the steps followed on a Mac system to install postgres and configure it:

1. Install postgres
``` brew install postgresql```
2. Start PostgresSQL:
```brew services start postgressql```
3. Create a user and database:

Username: evadb

Password: password

- ```psql postgres```
- ```CREATE ROLE evadb WITH LOGIN PASSWORD 'password';```
- ```ALTER ROLE evadb CREATEDB;```
- ```\q```
4. Login as your new user

``` psql -d postgres -U evadb```
5. create the database evadb

```CREATE DATABASE evadb;```
6. ```pip install psycopg2```
13 changes: 8 additions & 5 deletions evadb/catalog/sql_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,11 +71,14 @@ def __init__(self, uri):
# set echo=True to log SQL

# Default to SQLite.
connect_args = {"timeout": 1000}
self.engine = create_engine(
self.worker_uri,
connect_args=connect_args,
)
# connect_args = {"timeout": 1000}
# self.engine = create_engine(
# self.worker_uri,
# connect_args=connect_args,
# )

# Postgres version
self.engine = create_engine(self.worker_uri)

if self.engine.url.get_backend_name() == "sqlite":
# enforce foreign key constraint and wal logging for sqlite
Expand Down
15 changes: 14 additions & 1 deletion evadb/database.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,23 @@ def catalog(self) -> "CatalogManager":
return self.catalog_func(self.catalog_uri)


def get_default_db_uri(evadb_dir: Path):
def get_default_db_uri_sqlite(evadb_dir: Path):
# Default to sqlite.
return f"sqlite:///{evadb_dir.resolve()}/{DB_DEFAULT_NAME}"

def get_default_db_uri(evadb_dir: Path):
"""
Generates a PostgreSQL connection URI for the local database.
Returns:
str: A PostgreSQL connection URI.
"""
user = "evadb"
password = "password"
host = "localhost"
port = 5432 # Default PostgreSQL port
db_name = "evadb"
return f"postgresql://{user}:{password}@{host}:{port}/{db_name}"

def init_evadb_instance(
db_dir: str, host: str = None, port: int = None, custom_db_uri: str = None
Expand Down

0 comments on commit fc08fd9

Please sign in to comment.