Initial commit: AI platform app (server, views, lib, data, deploy docs)
Made-with: Cursor
This commit is contained in:
64
scripts/test-ax-insert.js
Normal file
64
scripts/test-ax-insert.js
Normal file
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env node
|
||||
/**
|
||||
* ax_assignments INSERT 직접 테스트 (배열 SQL 리터럴 방식)
|
||||
*/
|
||||
require("dotenv").config({ path: require("path").join(__dirname, "..", ".env") });
|
||||
const { Pool } = require("pg");
|
||||
const { v4: uuidv4 } = require("uuid");
|
||||
|
||||
const pool = new Pool({
|
||||
host: process.env.DB_HOST,
|
||||
port: Number(process.env.DB_PORT || 5432),
|
||||
database: process.env.DB_DATABASE,
|
||||
user: process.env.DB_USERNAME,
|
||||
password: process.env.DB_PASSWORD,
|
||||
});
|
||||
|
||||
async function main() {
|
||||
const id = uuidv4();
|
||||
const now = new Date();
|
||||
|
||||
const toArrayLiteralSafe = (v) => {
|
||||
if (v === "" || typeof v === "string" || v == null) return "'{}'";
|
||||
const arr = Array.isArray(v) ? v.filter((x) => typeof x === "string") : [];
|
||||
if (arr.length === 0) return "'{}'";
|
||||
const escaped = arr.map((s) => `"${String(s).replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`);
|
||||
return `'{${escaped.join(",")}}'`;
|
||||
};
|
||||
|
||||
const dataTypesLit = "'{}'";
|
||||
const qualitativeLit = "'{}'";
|
||||
const techStackLit = "'{}'";
|
||||
const risksLit = "'{}'";
|
||||
|
||||
const sql = `INSERT INTO ax_assignments (
|
||||
id, department, name, employee_id, position, phone, email,
|
||||
work_process_description, pain_point, current_time_spent, error_rate_before,
|
||||
collaboration_depts, reason_to_solve, ai_expectation, output_type, automation_level,
|
||||
data_readiness, data_location, personal_info, data_quality, data_count, data_types,
|
||||
time_reduction, error_reduction, volume_increase, cost_reduction, response_time,
|
||||
other_metrics, annual_savings, labor_replacement, revenue_increase, other_effects,
|
||||
qualitative_effects, tech_stack, risks, risk_detail, participation_pledge, status,
|
||||
created_at, updated_at
|
||||
) VALUES (
|
||||
$1::uuid, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16,
|
||||
$17, $18, $19, $20, $21, ${dataTypesLit}::text[], $22, $23, $24, $25, $26, $27, $28, $29, $30,
|
||||
$31, ${qualitativeLit}::text[], ${techStackLit}::text[], ${risksLit}::text[], $32, $33, $34, $35, $36
|
||||
)`;
|
||||
|
||||
const params = [
|
||||
... [id, "테스트부서", "홍길동", "", "", "", "", "테스트", "테스트", "30분", "5%", "", "테스트", "테스트", "테스트", "", "", "", "", "", "" ],
|
||||
... [ "", "", "", "", "", "", "", "", "", "" ],
|
||||
... [ "", false, "신청", now, now ],
|
||||
];
|
||||
|
||||
console.log("SQL preview:", sql.substring(200, 400));
|
||||
const res = await pool.query(sql, params);
|
||||
console.log("OK, inserted:", id);
|
||||
await pool.end();
|
||||
}
|
||||
|
||||
main().catch((e) => {
|
||||
console.error("Error:", e.message);
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in New Issue
Block a user