feat: add user_id index to profiles table for faster lookups

The profiles table previously lacked an index on the user_id column, causing full table scans during user lookups. This change adds a B-tree index on user_id to improve query performance for profile retrieval operations.
This commit is contained in:
2026-06-14 14:46:36 +00:00
parent 4fc4154dcc
commit f424d02523
149 changed files with 9811 additions and 262 deletions
+35
View File
@@ -0,0 +1,35 @@
# retoor <retoor@molodetz.nl>
import requests
from tests.conftest import BASE_URL
def _bob(seeded_db):
s = requests.Session()
s.post(
f"{BASE_URL}/auth/login",
data={
"email": seeded_db["bob"]["email"],
"password": seeded_db["bob"]["password"],
},
)
return s
def test_create_requires_admin(app_server, seeded_db):
s = _bob(seeded_db)
r = s.post(
f"{BASE_URL}/admin/containers/create",
data={"project_slug": "x", "name": "x"},
allow_redirects=False,
)
assert r.status_code in (302, 303, 403)
def test_create_requires_login(app_server):
r = requests.post(
f"{BASE_URL}/admin/containers/create",
data={"project_slug": "x", "name": "x"},
allow_redirects=False,
)
assert r.status_code in (302, 303)
@@ -0,0 +1 @@
# retoor <retoor@molodetz.nl>
@@ -0,0 +1,35 @@
# retoor <retoor@molodetz.nl>
import requests
from tests.conftest import BASE_URL
from devplacepy.database import get_table, refresh_snapshot
def _admin_session():
refresh_snapshot()
key = get_table("users").find_one(username="alice_test")["api_key"]
s = requests.Session()
s.headers.update({"X-API-KEY": key})
return s
def test_project_search_requires_admin(app_server, seeded_db):
s = requests.Session()
s.post(
f"{BASE_URL}/auth/login",
data={
"email": seeded_db["bob"]["email"],
"password": seeded_db["bob"]["password"],
},
)
r = s.get(
f"{BASE_URL}/admin/containers/projects/search?q=a", allow_redirects=False
)
assert r.status_code in (302, 303, 403)
def test_project_search_empty_query(app_server, seeded_db):
s = _admin_session()
r = s.get(f"{BASE_URL}/admin/containers/projects/search?q=")
assert r.status_code == 200
assert r.json()["results"] == []
@@ -0,0 +1 @@
# retoor <retoor@molodetz.nl>
@@ -0,0 +1,43 @@
# retoor <retoor@molodetz.nl>
import requests
from tests.conftest import BASE_URL
from devplacepy.database import get_table, refresh_snapshot
def _admin_session():
refresh_snapshot()
key = get_table("users").find_one(username="alice_test")["api_key"]
s = requests.Session()
s.headers.update({"X-API-KEY": key})
return s
def test_user_search_requires_admin(app_server, seeded_db):
s = requests.Session()
s.post(
f"{BASE_URL}/auth/login",
data={
"email": seeded_db["bob"]["email"],
"password": seeded_db["bob"]["password"],
},
)
r = s.get(
f"{BASE_URL}/admin/containers/users/search?q=alice", allow_redirects=False
)
assert r.status_code in (302, 303, 403)
def test_user_search_returns_results(app_server, seeded_db):
s = _admin_session()
r = s.get(f"{BASE_URL}/admin/containers/users/search?q=alice")
assert r.status_code == 200
results = r.json()["results"]
assert any(item["username"] == "alice_test" for item in results)
def test_user_search_empty_query(app_server, seeded_db):
s = _admin_session()
r = s.get(f"{BASE_URL}/admin/containers/users/search?q=")
assert r.status_code == 200
assert r.json()["results"] == []