77 lines
2.9 KiB
PL/PgSQL
77 lines
2.9 KiB
PL/PgSQL
-- ============================================================
|
|
-- 数据库清理脚本:保留 users, products, product_categories, exchange_rates
|
|
-- 清除所有其他业务数据
|
|
-- ============================================================
|
|
|
|
BEGIN;
|
|
|
|
-- 临时禁用触发器(绕过外键约束)
|
|
SET session_replication_role = replica;
|
|
|
|
-- 清除所有业务表数据
|
|
TRUNCATE TABLE projects CASCADE;
|
|
TRUNCATE TABLE customers CASCADE;
|
|
TRUNCATE TABLE suppliers CASCADE;
|
|
TRUNCATE TABLE subcontractors CASCADE;
|
|
TRUNCATE TABLE logistics_companies CASCADE;
|
|
TRUNCATE TABLE purchase_requests CASCADE;
|
|
TRUNCATE TABLE purchase_orders CASCADE;
|
|
TRUNCATE TABLE purchase_order_items CASCADE;
|
|
TRUNCATE TABLE purchases CASCADE;
|
|
TRUNCATE TABLE purchase_items CASCADE;
|
|
TRUNCATE TABLE payment_plans CASCADE;
|
|
TRUNCATE TABLE payment_requests CASCADE;
|
|
TRUNCATE TABLE payment_records CASCADE;
|
|
TRUNCATE TABLE payment_nodes CASCADE;
|
|
TRUNCATE TABLE advances CASCADE;
|
|
TRUNCATE TABLE advance_settlements CASCADE;
|
|
TRUNCATE TABLE reimbursements CASCADE;
|
|
TRUNCATE TABLE verifications CASCADE;
|
|
TRUNCATE TABLE executions CASCADE;
|
|
TRUNCATE TABLE approval_records CASCADE;
|
|
TRUNCATE TABLE inventory_records CASCADE;
|
|
TRUNCATE TABLE budget_projects CASCADE;
|
|
TRUNCATE TABLE budget_attachments CASCADE;
|
|
TRUNCATE TABLE budget_quotations CASCADE;
|
|
TRUNCATE TABLE construction_logs CASCADE;
|
|
TRUNCATE TABLE construction_log_photos CASCADE;
|
|
TRUNCATE TABLE construction_milestones CASCADE;
|
|
TRUNCATE TABLE milestone_evidence CASCADE;
|
|
TRUNCATE TABLE project_work_items CASCADE;
|
|
TRUNCATE TABLE quotations CASCADE;
|
|
TRUNCATE TABLE quotation_items CASCADE;
|
|
TRUNCATE TABLE subcontract_contracts CASCADE;
|
|
TRUNCATE TABLE subcontract_payments CASCADE;
|
|
TRUNCATE TABLE contacts CASCADE;
|
|
TRUNCATE TABLE supplier_contacts CASCADE;
|
|
TRUNCATE TABLE supplier_payment_infos CASCADE;
|
|
TRUNCATE TABLE subcontractor_contacts CASCADE;
|
|
TRUNCATE TABLE subcontractor_payment_infos CASCADE;
|
|
TRUNCATE TABLE customer_contacts CASCADE;
|
|
TRUNCATE TABLE customer_payment_infos CASCADE;
|
|
TRUNCATE TABLE logistics_company_contacts CASCADE;
|
|
TRUNCATE TABLE logistics_company_bank_accounts CASCADE;
|
|
TRUNCATE TABLE bank_accounts CASCADE;
|
|
TRUNCATE TABLE negotiation_reminders CASCADE;
|
|
TRUNCATE TABLE warranty_reminders CASCADE;
|
|
TRUNCATE TABLE settings CASCADE;
|
|
TRUNCATE TABLE workflow_definitions CASCADE;
|
|
TRUNCATE TABLE workflow_nodes CASCADE;
|
|
|
|
-- 恢复触发器
|
|
SET session_replication_role = DEFAULT;
|
|
|
|
COMMIT;
|
|
|
|
-- 验证结果
|
|
SELECT 'users' as tbl, COUNT(*) as cnt FROM users
|
|
UNION ALL SELECT 'products', COUNT(*) FROM products
|
|
UNION ALL SELECT 'product_categories', COUNT(*) FROM product_categories
|
|
UNION ALL SELECT 'exchange_rates', COUNT(*) FROM exchange_rates
|
|
UNION ALL SELECT 'projects', COUNT(*) FROM projects
|
|
UNION ALL SELECT 'customers', COUNT(*) FROM customers
|
|
UNION ALL SELECT 'suppliers', COUNT(*) FROM suppliers
|
|
UNION ALL SELECT 'advances', COUNT(*) FROM advances
|
|
UNION ALL SELECT 'purchase_requests', COUNT(*) FROM purchase_requests
|
|
ORDER BY 1;
|