Initial miaojingAI project with image resolution guard
This commit is contained in:
57
verify_recovered_data.js
Normal file
57
verify_recovered_data.js
Normal file
@@ -0,0 +1,57 @@
|
||||
const { Pool } = require('pg');
|
||||
require('dotenv').config({ path: '.env.local' });
|
||||
|
||||
const SYSTEM_USER_ID = '00000000-0000-0000-0000-000000000000';
|
||||
|
||||
(async () => {
|
||||
const pool = new Pool({ connectionString: process.env.LOCAL_DB_URL });
|
||||
const client = await pool.connect();
|
||||
try {
|
||||
const summary = await client.query(`
|
||||
SELECT
|
||||
(SELECT COUNT(*)::int FROM profiles) AS profiles,
|
||||
(SELECT COUNT(*)::int FROM auth.users) AS auth_users,
|
||||
(SELECT COUNT(*)::int FROM auth.users WHERE password_hash IS NULL OR password_hash = '') AS auth_without_password_hash,
|
||||
(SELECT COUNT(*)::int FROM works) AS works_total,
|
||||
(SELECT COUNT(*)::int FROM works WHERE status = 'completed' AND is_public = true) AS public_works,
|
||||
(SELECT COUNT(*)::int FROM works w LEFT JOIN profiles p ON p.id = w.user_id WHERE w.status = 'completed' AND w.is_public = true AND p.id IS NULL) AS public_missing_profile,
|
||||
(SELECT COUNT(*)::int FROM works WHERE status = 'completed' AND is_public = true AND user_id = $1) AS public_system_user
|
||||
`, [SYSTEM_USER_ID]);
|
||||
|
||||
const byUser = await client.query(`
|
||||
SELECT
|
||||
COALESCE(p.email, '[missing-profile]') AS email,
|
||||
COALESCE(p.nickname, '') AS nickname,
|
||||
w.user_id,
|
||||
COUNT(*)::int AS works,
|
||||
COUNT(*) FILTER (WHERE w.is_public = true AND w.status = 'completed')::int AS public_works,
|
||||
COUNT(*) FILTER (WHERE w.is_public = false AND w.status = 'completed')::int AS history_works
|
||||
FROM works w
|
||||
LEFT JOIN profiles p ON p.id = w.user_id
|
||||
WHERE w.status = 'completed'
|
||||
GROUP BY w.user_id, p.email, p.nickname
|
||||
ORDER BY works DESC
|
||||
`);
|
||||
|
||||
const noHashUsers = await client.query(`
|
||||
SELECT p.email, p.nickname, p.role, p.created_at
|
||||
FROM auth.users u
|
||||
JOIN profiles p ON p.id = u.id
|
||||
WHERE u.password_hash IS NULL OR u.password_hash = ''
|
||||
ORDER BY p.created_at DESC
|
||||
LIMIT 20
|
||||
`);
|
||||
|
||||
console.log(JSON.stringify({
|
||||
summary: summary.rows[0],
|
||||
byUser: byUser.rows,
|
||||
noHashUsers: noHashUsers.rows,
|
||||
}, null, 2));
|
||||
} finally {
|
||||
client.release();
|
||||
await pool.end();
|
||||
}
|
||||
})().catch(error => {
|
||||
console.error(error);
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in New Issue
Block a user