用sql直接清空POS测试数据 - xiaohao0576/odoo-doc GitHub Wiki
下面需要在postgresql中执行
\set ON_ERROR_STOP on
\c db_name
BEGIN;
-- 如果你想先试跑,执行到这里后先检查结果,没问题再手动 COMMIT;
-- 如果发现不对,直接执行 ROLLBACK;
-- 先删 POS 订单相关附件和消息,避免孤儿记录
DELETE FROM ir_attachment
WHERE res_model = 'pos.order'
AND res_id IN (SELECT id FROM pos_order);
DELETE FROM mail_message
WHERE model = 'pos.order'
AND res_id IN (SELECT id FROM pos_order);
DELETE FROM mail_followers
WHERE res_model = 'pos.order'
AND res_id IN (SELECT id FROM pos_order);
-- 如果这些训练订单已经生成过发票,先删掉对应会计凭证
DELETE FROM account_move
WHERE id IN (
SELECT account_move
FROM pos_order
WHERE account_move IS NOT NULL
);
-- 先删会话下的银行/收银相关记录
DELETE FROM account_bank_statement_line
WHERE pos_session_id IN (SELECT id FROM pos_session);
DELETE FROM account_payment
WHERE pos_session_id IN (SELECT id FROM pos_session);
-- 再删订单;pos_order_line 和 pos.payment 会随外键级联删除
DELETE FROM pos_order;
-- 最后删会话
DELETE FROM pos_session;
COMMIT;