AgentSkillsCN

manage-database

管理应用数据库,涵盖本地开发环境与远程生产环境。

SKILL.md
--- frontmatter
name: manage-database
description: Manage application databases including local development and remote production environments.

Database Management Skill

This skill details how to manage the application's database, including switching between local and remote environments and handling migrations.

Database Modes

1. Local Development (SQLite)

  • Setup: Set USE_LOCAL_DB=true in .env.
  • File: instance/luxury.db.
  • Use Case: Fast iteration, offline development.

2. Remote Production (Azure SQL)

  • Setup: Set USE_LOCAL_DB=false (or remove from .env).
  • Config: Requires DATABASE_URL with valid Azure SQL credentials.
  • Use Case: Integration testing, production deployment.

Common Tasks

1. Reset Database

  • Action: Delete instance/luxury.db and restart the app.
  • Note: app.py automatically calls db.create_all() on startup if tables are missing.
  • Warning: This erases all local data (users, products, orders).

2. Schema Changes

  • Detect: SQLAlchemy warnings (e.g., overlapping relationships).
  • Fix: Update models in app.py.
  • Apply: For SQLite, drop/recreate is easiest. For Azure, use migration scripts (not yet automated).

Relevant Files

  • app.py (Model definitions: User, Product, Order, OrderItem)
  • .env (Database configuration toggle)
  • instance/luxury.db (Local database file)