010_price_snapshot.sql 1.0 KB

123456789101112131415161718192021222324252627
  1. -- Migration 010: price_snapshot — canonical price data served by /prices API
  2. SET search_path TO crawl;
  3. -- 全局版本号,从 1 开始,每次快照有任何数据变化就 +1
  4. CREATE TABLE IF NOT EXISTS price_snapshot_version (
  5. id INT PRIMARY KEY DEFAULT 1,
  6. version BIGINT NOT NULL DEFAULT 0,
  7. updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
  8. CONSTRAINT single_row CHECK (id = 1)
  9. );
  10. INSERT INTO price_snapshot_version (id, version) VALUES (1, 0)
  11. ON CONFLICT (id) DO NOTHING;
  12. -- 每个模型 URL 一行,不再存 version(version 统一在 price_snapshot_version 管理)
  13. CREATE TABLE IF NOT EXISTS price_snapshot (
  14. url TEXT PRIMARY KEY,
  15. model_name VARCHAR(200) NOT NULL,
  16. prices JSONB NOT NULL DEFAULT '{}',
  17. model_info JSONB,
  18. rate_limits JSONB,
  19. tool_prices JSONB,
  20. updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
  21. );
  22. COMMENT ON TABLE price_snapshot IS
  23. 'One row per model URL. Global version is tracked in price_snapshot_version.';