0021_vanity_urls.up.sql 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. -- Migration: 0020_vanity_urls
  2. -- Description: Create tables for vanity URL management
  3. -- Date: 2024-12-28
  4. -- Create vanity URLs table for custom user URLs
  5. CREATE TABLE IF NOT EXISTS vanity_urls (
  6. screen_name VARCHAR(16) PRIMARY KEY,
  7. vanity_url VARCHAR(255) UNIQUE NOT NULL,
  8. display_name VARCHAR(100),
  9. bio TEXT,
  10. location VARCHAR(100),
  11. website VARCHAR(255),
  12. created_at INTEGER NOT NULL,
  13. updated_at INTEGER NOT NULL,
  14. is_active BOOLEAN DEFAULT TRUE,
  15. click_count INTEGER DEFAULT 0,
  16. last_accessed INTEGER
  17. );
  18. -- Create indexes for efficient lookups
  19. CREATE INDEX idx_vanity_urls_url ON vanity_urls(vanity_url);
  20. CREATE INDEX idx_vanity_urls_active ON vanity_urls(is_active);
  21. CREATE INDEX idx_vanity_urls_created ON vanity_urls(created_at);
  22. -- Create vanity URL redirects table for tracking and analytics
  23. CREATE TABLE IF NOT EXISTS vanity_url_redirects (
  24. id INTEGER PRIMARY KEY AUTOINCREMENT,
  25. vanity_url VARCHAR(255) NOT NULL,
  26. accessed_at INTEGER NOT NULL,
  27. ip_address VARCHAR(45),
  28. user_agent TEXT,
  29. referer TEXT,
  30. FOREIGN KEY (vanity_url) REFERENCES vanity_urls(vanity_url) ON DELETE CASCADE
  31. );
  32. -- Create index for redirect analytics
  33. CREATE INDEX idx_vanity_redirects_url ON vanity_url_redirects(vanity_url);
  34. CREATE INDEX idx_vanity_redirects_time ON vanity_url_redirects(accessed_at);