refactor: clean migration statements
This commit is contained in:
parent
d1173e0e73
commit
1a458ee757
1 changed files with 152 additions and 0 deletions
152
migrations.py
152
migrations.py
|
|
@ -0,0 +1,152 @@
|
||||||
|
async def m001_initial(db):
|
||||||
|
|
||||||
|
"""
|
||||||
|
Initial merchants table.
|
||||||
|
"""
|
||||||
|
await db.execute(
|
||||||
|
"""
|
||||||
|
CREATE TABLE nostrmarket.merchants (
|
||||||
|
user_id TEXT NOT NULL,
|
||||||
|
private_key TEXT NOT NULL,
|
||||||
|
public_key TEXT NOT NULL,
|
||||||
|
config TEXT NOT NULL
|
||||||
|
);
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
"""
|
||||||
|
Initial stalls table.
|
||||||
|
"""
|
||||||
|
await db.execute(
|
||||||
|
"""
|
||||||
|
CREATE TABLE nostrmarket.stalls (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
wallet TEXT NOT NULL,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
currency TEXT,
|
||||||
|
shipping_zones TEXT NOT NULL,
|
||||||
|
rating REAL DEFAULT 0
|
||||||
|
);
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
"""
|
||||||
|
Initial products table.
|
||||||
|
"""
|
||||||
|
await db.execute(
|
||||||
|
f"""
|
||||||
|
CREATE TABLE nostrmarket.products (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
stall_id TEXT NOT NULL,
|
||||||
|
product TEXT NOT NULL,
|
||||||
|
categories TEXT,
|
||||||
|
description TEXT,
|
||||||
|
image TEXT,
|
||||||
|
price REAL NOT NULL,
|
||||||
|
quantity INTEGER NOT NULL,
|
||||||
|
rating REAL DEFAULT 0
|
||||||
|
);
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
"""
|
||||||
|
Initial zones table.
|
||||||
|
"""
|
||||||
|
await db.execute(
|
||||||
|
"""
|
||||||
|
CREATE TABLE nostrmarket.zones (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
user_id TEXT NOT NULL,
|
||||||
|
cost REAL NOT NULL,
|
||||||
|
countries TEXT NOT NULL
|
||||||
|
);
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
"""
|
||||||
|
Initial orders table.
|
||||||
|
"""
|
||||||
|
await db.execute(
|
||||||
|
f"""
|
||||||
|
CREATE TABLE nostrmarket.orders (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
wallet TEXT NOT NULL,
|
||||||
|
username TEXT,
|
||||||
|
pubkey TEXT,
|
||||||
|
shipping_zone TEXT NOT NULL,
|
||||||
|
address TEXT,
|
||||||
|
email TEXT,
|
||||||
|
total REAL NOT NULL,
|
||||||
|
invoice_id TEXT NOT NULL,
|
||||||
|
paid BOOLEAN NOT NULL,
|
||||||
|
shipped BOOLEAN NOT NULL,
|
||||||
|
time TIMESTAMP NOT NULL DEFAULT {db.timestamp_now}
|
||||||
|
);
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
"""
|
||||||
|
Initial order details table.
|
||||||
|
"""
|
||||||
|
await db.execute(
|
||||||
|
f"""
|
||||||
|
CREATE TABLE nostrmarket.order_details (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
order_id TEXT NOT NULL,
|
||||||
|
product_id TEXT NOT NULL,
|
||||||
|
quantity INTEGER NOT NULL
|
||||||
|
);
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
"""
|
||||||
|
Initial market table.
|
||||||
|
"""
|
||||||
|
await db.execute(
|
||||||
|
"""
|
||||||
|
CREATE TABLE nostrmarket.markets (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
user_id TEXT NOT NULL,
|
||||||
|
name TEXT
|
||||||
|
);
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
"""
|
||||||
|
Initial market stalls table.
|
||||||
|
"""
|
||||||
|
await db.execute(
|
||||||
|
f"""
|
||||||
|
CREATE TABLE nostrmarket.market_stalls (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
market_id TEXT NOT NULL,
|
||||||
|
stall_id TEXT NOT NULL
|
||||||
|
);
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
"""
|
||||||
|
Initial chat messages table.
|
||||||
|
"""
|
||||||
|
await db.execute(
|
||||||
|
f"""
|
||||||
|
CREATE TABLE nostrmarket.messages (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
msg TEXT NOT NULL,
|
||||||
|
pubkey TEXT NOT NULL,
|
||||||
|
conversation_id TEXT NOT NULL,
|
||||||
|
timestamp TIMESTAMP NOT NULL DEFAULT {db.timestamp_now}
|
||||||
|
);
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
if db.type != "SQLITE":
|
||||||
|
"""
|
||||||
|
Create indexes for message fetching
|
||||||
|
"""
|
||||||
|
await db.execute(
|
||||||
|
"CREATE INDEX idx_messages_timestamp ON nostrmarket.messages (timestamp DESC)"
|
||||||
|
)
|
||||||
|
await db.execute(
|
||||||
|
"CREATE INDEX idx_messages_conversations ON nostrmarket.messages (conversation_id)"
|
||||||
|
)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue