41 lines
998 B
Python
41 lines
998 B
Python
import asyncio
|
|
import asyncpg
|
|
import os
|
|
from asyncpg.connection import Connection
|
|
|
|
|
|
async def init_tables(connection: Connection):
|
|
init_users_query = """
|
|
CREATE TABLE users ( \
|
|
user_id bigint PRIMARY KEY, \
|
|
is_admin boolean DEFAULT FALSE \
|
|
);
|
|
"""
|
|
|
|
await connection.execute(init_users_query)
|
|
init_projects_query = """
|
|
CREATE TABLE projects (
|
|
id SERIAL PRIMARY KEY, \
|
|
name varchar(50), \
|
|
description varchar(1000), \
|
|
creator bigint REFERENCES users, \
|
|
contributors smallint DEFAULT 1, \
|
|
status bit(1) DEFAULT B'1', \
|
|
tag varchar(100), \
|
|
category varchar(20), \
|
|
creation_date date DEFAULT CURRENT_DATE \
|
|
);
|
|
"""
|
|
await connection.execute(init_projects_query)
|
|
|
|
|
|
async def main():
|
|
DB_URL = os.getenv("DB_URL")
|
|
connection = await asyncpg.connect(DB_URL)
|
|
await init_tables(connection)
|
|
await connection.close()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
asyncio.run(main())
|