freshyo/scripts/clear-db.sql
2026-08-15 10:34:28 +05:30

89 lines
2.8 KiB
SQL

-- ============================================================
-- clear-db.sql — DROP ALL TABLES (schema + data, everything)
--
-- Usage:
-- sqlite3 <your.db> < scripts/clear-db.sql
-- wrangler d1 execute <db-name> --local --file scripts/clear-db.sql
-- wrangler d1 execute <db-name> --remote --file scripts/clear-db.sql
--
-- WARNING: This DROPS every table in the database. There is no undo.
-- ============================================================
-- Don't enforce FK constraints while dropping (ordering below is
-- child-first anyway, so this is belt-and-braces).
PRAGMA defer_foreign_keys = on;
PRAGMA foreign_keys = OFF;
-- ---- leaf tables (no inbound references) ----
DROP TABLE IF EXISTS sku_features;
DROP TABLE IF EXISTS product_market_stats;
DROP TABLE IF EXISTS product_tags;
DROP TABLE IF EXISTS product_group_membership;
DROP TABLE IF EXISTS product_combos;
DROP TABLE IF EXISTS order_items;
DROP TABLE IF EXISTS cart_items;
DROP TABLE IF EXISTS special_deals;
DROP TABLE IF EXISTS coupon_applicable_products;
DROP TABLE IF EXISTS product_reviews;
-- ---- product/sku hierarchy ----
DROP TABLE IF EXISTS product_skus;
DROP TABLE IF EXISTS product_info;
DROP TABLE IF EXISTS store_info;
-- ---- orders & dependents ----
DROP TABLE IF EXISTS coupon_usage;
DROP TABLE IF EXISTS order_status;
DROP TABLE IF EXISTS payments;
DROP TABLE IF EXISTS refunds;
DROP TABLE IF EXISTS complaints;
DROP TABLE IF EXISTS user_incidents;
DROP TABLE IF EXISTS orders;
DROP TABLE IF EXISTS payment_info;
DROP TABLE IF EXISTS coupon_applicable_users;
-- ---- coupons & snippets ----
DROP TABLE IF EXISTS coupons;
DROP TABLE IF EXISTS reserved_coupons;
DROP TABLE IF EXISTS vendor_snippets;
DROP TABLE IF EXISTS delivery_slot_info;
-- ---- content/catalog ----
DROP TABLE IF EXISTS home_banners;
DROP TABLE IF EXISTS product_group_info;
DROP TABLE IF EXISTS product_tag_info;
DROP TABLE IF EXISTS product_categories;
DROP TABLE IF EXISTS units;
DROP TABLE IF EXISTS upload_url_status;
-- ---- notifications / misc ----
DROP TABLE IF EXISTS user_notifications;
DROP TABLE IF EXISTS notifications;
DROP TABLE IF EXISTS notif_creds;
DROP TABLE IF EXISTS key_val_store;
-- ---- addresses ----
DROP TABLE IF EXISTS addresses;
DROP TABLE IF EXISTS address_areas;
DROP TABLE IF EXISTS address_zones;
-- ---- users ----
DROP TABLE IF EXISTS unlogged_user_tokens;
DROP TABLE IF EXISTS user_creds;
DROP TABLE IF EXISTS user_details;
DROP TABLE IF EXISTS users;
-- ---- staff ----
DROP TABLE IF EXISTS staff_role_permissions;
DROP TABLE IF EXISTS staff_users;
DROP TABLE IF EXISTS staff_roles;
DROP TABLE IF EXISTS staff_permissions;
-- (sqlite_sequence is internal; SQLite drops it automatically once the last
-- AUTOINCREMENT table is gone)
PRAGMA foreign_keys = ON;
PRAGMA defer_foreign_keys = off;
-- Optionally reclaim disk space (sqlite3 CLI only; not supported in D1):
-- VACUUM;