39 lines
819 B
Python
39 lines
819 B
Python
import os
|
|
|
|
from sqlalchemy import (
|
|
Column,
|
|
DateTime,
|
|
Integer,
|
|
MetaData,
|
|
String,
|
|
Table,
|
|
create_engine,
|
|
text,
|
|
)
|
|
from sqlalchemy.sql import func
|
|
|
|
DATABASE_URL = os.getenv(
|
|
"DATABASE_URL",
|
|
"postgresql+psycopg2://postgres:postgres@localhost:5432/postgres",
|
|
)
|
|
|
|
engine = create_engine(DATABASE_URL, pool_pre_ping=True)
|
|
|
|
metadata = MetaData()
|
|
items_table = Table(
|
|
"items",
|
|
metadata,
|
|
Column("id", Integer, primary_key=True, autoincrement=True),
|
|
Column("name", String(255), nullable=False),
|
|
Column("created_at", DateTime(timezone=True), server_default=func.now()),
|
|
)
|
|
|
|
|
|
def check_database_connection() -> None:
|
|
with engine.connect() as connection:
|
|
connection.execute(text("SELECT 1"))
|
|
|
|
|
|
def create_database_tables() -> None:
|
|
metadata.create_all(engine)
|