29 lines
775 B
Python
29 lines
775 B
Python
import os
|
|
from urllib.parse import urlparse
|
|
|
|
|
|
def main():
|
|
url = os.getenv("WORKSPACE_DATABASE_URL_SYNC", "")
|
|
if not url:
|
|
return
|
|
import psycopg
|
|
|
|
parsed = urlparse(url.replace("+psycopg", ""))
|
|
db = (parsed.path or "/workspace_db").lstrip("/")
|
|
with psycopg.connect(
|
|
host=parsed.hostname or "localhost",
|
|
port=parsed.port or 5432,
|
|
user=parsed.username,
|
|
password=parsed.password,
|
|
dbname="postgres",
|
|
autocommit=True,
|
|
) as conn:
|
|
with conn.cursor() as cur:
|
|
cur.execute("SELECT 1 FROM pg_database WHERE datname=%s", (db,))
|
|
if not cur.fetchone():
|
|
cur.execute(f'CREATE DATABASE "{db}"')
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|