diff --git a/alembic/env.py b/alembic/env.py index e3750bd..b943e25 100644 --- a/alembic/env.py +++ b/alembic/env.py @@ -27,7 +27,7 @@ target_metadata = Base.metadata # Get DB URL from env (prefer KEYWARDEN_ prefix, fall back to unprefixed, then a sane default for local) DB_USER = os.getenv("KEYWARDEN_POSTGRES_USER", "postgres") DB_PASS = os.getenv("KEYWARDEN_POSTGRES_PASSWORD", "postgres") -DB_HOST = os.getenv("KEYWARDEN_POSTGRES_HOST", "localhost") +DB_HOST = os.getenv("KEYWARDEN_POSTGRES_HOST", "keywarden-db") DB_PORT = os.getenv("KEYWARDEN_POSTGRES_PORT", "5432") DB_NAME = os.getenv("KEYWARDEN_POSTGRES_DB", "keywarden") diff --git a/app/db/base.py b/app/db/base.py index 2fb0527..4d6d4b1 100644 --- a/app/db/base.py +++ b/app/db/base.py @@ -1,9 +1,8 @@ -from sqlalchemy.orm import declarative_base +from app.db.base_class import Base # noqa: F401 +# Import all models so their tables are registered on Base.metadata +from app.models.user import User # noqa: F401 +from app.models.server import Server # noqa: F401 +from app.models.sshkey import SSHKey # noqa: F401 from app.models.access_request import AccessRequest # noqa: F401 -from app.models.audit import AuditEvent # noqa: F401 -from app.models.server import Server # noqa: F401 -from app.models.sshkey import SSHKey # noqa: F401 -from app.models.user import User # noqa: F401 - -Base = declarative_base() \ No newline at end of file +from app.models.audit import AuditEvent # noqa: F401 \ No newline at end of file diff --git a/app/db/base_class.py b/app/db/base_class.py new file mode 100644 index 0000000..cbc8ea3 --- /dev/null +++ b/app/db/base_class.py @@ -0,0 +1,13 @@ +from sqlalchemy import MetaData +from sqlalchemy.orm import declarative_base + +# Optional: naming convention keeps Alembic diffs stable +convention = { + "ix": "ix_%(column_0_label)s", + "uq": "uq_%(table_name)s_%(column_0_name)s", + "ck": "ck_%(table_name)s_%(constraint_name)s", + "fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s", + "pk": "pk_%(table_name)s", +} +metadata = MetaData(naming_convention=convention) +Base = declarative_base(metadata=metadata) \ No newline at end of file diff --git a/app/models/user.py b/app/models/user.py index 9d9d0a8..4921a1c 100644 --- a/app/models/user.py +++ b/app/models/user.py @@ -1,10 +1,8 @@ from sqlalchemy import Boolean, String -from sqlalchemy.orm import Mapped, declarative_base, mapped_column +from sqlalchemy.orm import Mapped, mapped_column -# only for Alembic discovery, not used here -from app.db.session import engine # noqa: F401 +from app.db.base_class import Base # <-- use the shared Base -Base = declarative_base() class User(Base): __tablename__ = "users" diff --git a/nginx/configs/sites/default.conf b/nginx/configs/sites/default.conf index e52b21a..349b1de 100644 --- a/nginx/configs/sites/default.conf +++ b/nginx/configs/sites/default.conf @@ -25,19 +25,19 @@ server { } location /docs { - proxy_pass http://api:8000; + proxy_pass http://keywarden-api:8000; } location /openapi.json { - proxy_pass http://api:8000; + proxy_pass http://keywarden-api:8000; } location /api/v1/ { - proxy_pass http://api:8000; + proxy_pass http://keywarden-api:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto; } location /healthz { - proxy_pass http://api:8000; + proxy_pass http://keywarden-api:8000; } }