import os
from supabase import create_async_client, AClient
from dotenv import load_dotenv
class SupabaseClient:
def __init__(self):
load_dotenv()
self.url: str = os.environ.get("SUPABASE_URL")
self.key: str = os.environ.get("SUPABASE_KEY")
self.client: AClient = None
async def login(self):
self.client = await create_async_client(self.url, self.key)
await self.client.realtime.connect()
async def subscribe(self):
# await self.client.channel('schema-db-changes').on_postgres_changes("*", schema="*", table="*", callback=lambda payload: print(payload)).subscribe()
await self.client.channel('schema-db-changes').on_postgres_changes(
"*",
schema="public",
callback=lambda payload: print(payload)
).subscribe()
await self.client.channel('schema-db-changes').on_postgres_changes(
"INSERT",
schema="public",
callback=lambda payload: print(payload)
).subscribe()
if __name__ == '__main__':
import asyncio
async def main():
client = SupabaseClient()
await client.login()
await client.subscribe()
print("Press Ctrl+C to exit")
while True:
await asyncio.sleep(1)
asyncio.run(main())
import os
from supabase import create_async_client, AClient
from dotenv import load_dotenv
class SupabaseClient:
def __init__(self):
load_dotenv()
self.url: str = os.environ.get("SUPABASE_URL")
self.key: str = os.environ.get("SUPABASE_KEY")
self.client: AClient = None
async def login(self):
self.client = await create_async_client(self.url, self.key)
await self.client.realtime.connect()
async def subscribe(self):
# await self.client.channel('schema-db-changes').on_postgres_changes("*", schema="*", table="*", callback=lambda payload: print(payload)).subscribe()
await self.client.channel('schema-db-changes').on_postgres_changes(
"*",
schema="public",
callback=lambda payload: print(payload)
).subscribe()
await self.client.channel('schema-db-changes').on_postgres_changes(
"INSERT",
schema="public",
callback=lambda payload: print(payload)
).subscribe()
if __name__ == '__main__':
import asyncio
async def main():
client = SupabaseClient()
await client.login()
await client.subscribe()
print("Press Ctrl+C to exit")
while True:
await asyncio.sleep(1)
asyncio.run(main())