Initial commit

This commit is contained in:
2026-02-08 10:09:48 +01:00
commit d165506add
58 changed files with 9879 additions and 0 deletions

59
test.py Normal file
View File

@@ -0,0 +1,59 @@
from sqlalchemy import (
Column,
DateTime,
ForeignKey,
Integer,
MetaData,
Numeric,
String,
Table,
create_engine,
func,
select,
)
from sqlalchemy_pgview import MaterializedView, View
# Create engine and metadata
engine = create_engine("postgresql://postgres:postgres@localhost/postgres")
metadata = MetaData()
# Define some tables
users = Table(
"users",
metadata,
Column("id", Integer, primary_key=True),
Column("name", String(100)),
Column("email", String(100)),
)
orders = Table(
"orders",
metadata,
Column("id", Integer, primary_key=True),
Column("user_id", Integer, ForeignKey("users.id")),
Column("total", Numeric(10, 2)),
Column("created_at", DateTime, server_default=func.now()),
)
active_users = View(
"active_users",
select(users.c.id, users.c.name, users.c.email),
metadata=metadata,
)
monthly_sales = MaterializedView(
"monthly_sales",
select(
func.date_trunc("month", orders.c.created_at).label("month"),
func.count(orders.c.id).label("order_count"),
func.sum(orders.c.total).label("revenue"),
).group_by(func.date_trunc("month", orders.c.created_at)),
with_data=True,
metadata=metadata,
)
# Create tables
metadata.create_all(engine)
# metadata.drop_all(engine)