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())