database-sqlite

Database Best Practices

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "database-sqlite" with this command: npx skills add niller2005/polyflup/niller2005-polyflup-database-sqlite

Database Best Practices

Connection Management

ALWAYS use the db_connection() context manager:

from src.data.db_connection import db_connection

with db_connection() as conn: c = conn.cursor() c.execute("SELECT * FROM trades") # Commit happens automatically on success

  • NEVER call conn.commit() manually.

  • Deadlock Prevention: When calling write functions (like execute_trade ) from within an existing transaction, MUST pass the active cursor.

Migration System

The migration system tracks versions in the schema_version table.

Adding a New Migration:

  • Create a migration function in src/data/migrations.py .

  • Register it in the MIGRATIONS list.

  • Update the base schema in src/data/database.py .

Rules:

  • Check if columns/indices exist before creating.

  • Migrations must be idempotent.

  • Never delete or modify existing migrations.

Schema Overview

Main table: trades

  • Core Fields: id , timestamp , symbol , side , entry_price , size , bet_usd , edge

  • Order Tracking: order_id , order_status , limit_sell_order_id , scale_in_order_id

  • Position Management: scaled_in , is_reversal , target_price , reversal_triggered , reversal_triggered_at

  • Settlement: settled , settled_at , exited_early , final_outcome , exit_price , pnl_usd , roi_pct

  • Timing: window_start , window_end , last_scale_in_at

  • Market Data: slug , token_id , p_yes , best_bid , best_ask , imbalance , funding_bias

  • Bayesian Comparison (v0.5.0+): additive_confidence , additive_bias , bayesian_confidence , bayesian_bias , market_prior_p_up

Key Database Patterns

Position Queries

Get open positions with all relevant data

c.execute(""" SELECT id, symbol, token_id, side, entry_price, size, bet_usd, limit_sell_order_id, scale_in_order_id, scaled_in, edge, last_scale_in_at, window_end FROM trades WHERE settled = 0 AND exited_early = 0 AND datetime(window_end) > datetime(?) """, (now.isoformat(),))

Trade Updates

Update position size after scale-in

c.execute(""" UPDATE trades SET size = ?, bet_usd = ? * entry_price, scaled_in = 1, last_scale_in_at = ? WHERE id = ? """, (new_size, new_size, now.isoformat(), trade_id))

Settlement

Settle position with exit data

c.execute(""" UPDATE trades SET settled = 1, exited_early = 1, exit_price = ?, pnl_usd = ?, roi_pct = ?, settled_at = ? WHERE id = ? """, (exit_price, pnl_usd, roi_pct, now.isoformat(), trade_id))

WAL Mode

  • Database uses Write-Ahead Logging (WAL) mode for better concurrency

  • Enabled on initialization: PRAGMA journal_mode=WAL

  • Allows concurrent readers while writes are in progress

Migration History

  • Migration 007 (v0.5.0): Added Bayesian confidence comparison columns (additive_confidence , additive_bias , bayesian_confidence , bayesian_bias , market_prior_p_up ) for A/B testing

  • Migration 006 (v0.4.x): Added raw signal score columns (up_total , down_total , momentum_score , momentum_dir , flow_score , flow_dir , divergence_score , divergence_dir , vwm_score , vwm_dir , pm_mom_score , pm_mom_dir , adx_score , adx_dir , lead_lag_bonus ) for confidence formula calibration

  • Migration 005: Added last_scale_in_at column for tracking scale-in timing

  • Migration 004: Added reversal_triggered_at column for timing reversals

  • Migration 003: Added reversal_triggered column for reversal tracking

  • Migration 002: Added timestamp verification

  • Migration 001: Added scale_in_order_id column for tracking pending scale-in orders

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

polymarket-trading

No summary provided by upstream source.

Repository SourceNeeds Review
General

database-analyzer

No summary provided by upstream source.

Repository SourceNeeds Review
General

svelte-ui-standards

No summary provided by upstream source.

Repository SourceNeeds Review