mirror of
https://github.com/xtr-dev/rondevu-server.git
synced 2025-12-10 10:53:24 +00:00
- Add service_id column to offers table - Remove offer_id column from services table - Update VERSION to 0.4.0 in wrangler.toml
41 lines
1.5 KiB
SQL
41 lines
1.5 KiB
SQL
-- V0.4.0 Migration: Refactor service-to-offer relationship
|
|
-- Change from one-to-one (service has offer_id) to one-to-many (offer has service_id)
|
|
|
|
-- Step 1: Add service_id column to offers table
|
|
ALTER TABLE offers ADD COLUMN service_id TEXT;
|
|
|
|
-- Step 2: Create new services table without offer_id
|
|
CREATE TABLE services_new (
|
|
id TEXT PRIMARY KEY,
|
|
username TEXT NOT NULL,
|
|
service_fqn TEXT NOT NULL,
|
|
created_at INTEGER NOT NULL,
|
|
expires_at INTEGER NOT NULL,
|
|
is_public INTEGER NOT NULL DEFAULT 0,
|
|
metadata TEXT,
|
|
FOREIGN KEY (username) REFERENCES usernames(username) ON DELETE CASCADE,
|
|
UNIQUE(username, service_fqn)
|
|
);
|
|
|
|
-- Step 3: Copy data from old services table (if any exists)
|
|
INSERT INTO services_new (id, username, service_fqn, created_at, expires_at, is_public, metadata)
|
|
SELECT id, username, service_fqn, created_at, expires_at, is_public, metadata
|
|
FROM services;
|
|
|
|
-- Step 4: Drop old services table
|
|
DROP TABLE services;
|
|
|
|
-- Step 5: Rename new table to services
|
|
ALTER TABLE services_new RENAME TO services;
|
|
|
|
-- Step 6: Recreate indexes
|
|
CREATE INDEX IF NOT EXISTS idx_services_username ON services(username);
|
|
CREATE INDEX IF NOT EXISTS idx_services_fqn ON services(service_fqn);
|
|
CREATE INDEX IF NOT EXISTS idx_services_expires ON services(expires_at);
|
|
|
|
-- Step 7: Add index for service_id in offers
|
|
CREATE INDEX IF NOT EXISTS idx_offers_service ON offers(service_id);
|
|
|
|
-- Step 8: Add foreign key constraint (D1 doesn't enforce FK in ALTER, but good for documentation)
|
|
-- FOREIGN KEY (service_id) REFERENCES services(id) ON DELETE CASCADE
|