Fix SMS import tableExists to use selected database name.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-06 15:39:59 +03:30
co-authored by Cursor
parent 12513e4967
commit 2d21813c7b
+7 -11
View File
@@ -92,17 +92,13 @@ function mapLedgerType(raw: string): SmsLedgerType {
return 'debit';
}
async function tableExists(conn: mysql.Connection, table: string) {
const db =
env('SMS_IMPORT_DB_DATABASE') ||
env('HAMKAR_DB_DATABASE') ||
env('KHANEGI_DB_DATABASE');
async function tableExists(conn: mysql.Connection, database: string, table: string) {
const [rows] = await conn.query(
`SELECT 1 AS ok
FROM information_schema.tables
WHERE table_schema = ? AND table_name = ?
LIMIT 1`,
[db, table],
[database, table],
);
return Array.isArray(rows) && rows.length > 0;
}
@@ -231,13 +227,13 @@ async function main() {
});
try {
if (!(await tableExists(conn, 'sms_wallets'))) {
if (!(await tableExists(conn, database, 'sms_wallets'))) {
console.log('SKIP: sms_wallets table missing — billing not installed on this version.');
return;
}
let smsPanel = '';
if (await tableExists(conn, 'settings')) {
if (await tableExists(conn, database, 'settings')) {
const [panelRows] = await conn.query(
`SELECT \`value\` AS v FROM settings WHERE \`key\` = 'sms_panel' LIMIT 1`,
);
@@ -264,7 +260,7 @@ async function main() {
const wallet = walletRows[0];
const keys = chargeKeys(product);
const settings = new Map<string, string>();
if (await tableExists(conn, 'settings')) {
if (await tableExists(conn, database, 'settings')) {
const [settingRowsRaw] = await conn.query(
`SELECT \`key\`, \`value\` FROM settings WHERE \`key\` IN (?, ?, ?, ?)`,
[keys.card, keys.iban, keys.holder, keys.instruction],
@@ -290,7 +286,7 @@ async function main() {
let sendLogs: SendLogRow[] = [];
if (withHistory) {
if (await tableExists(conn, 'sms_ledger')) {
if (await tableExists(conn, database, 'sms_ledger')) {
const [rows] = await conn.query(
`SELECT type, amount, balance_after, price_per_part, parts, note, created_by, created_at
FROM sms_ledger
@@ -298,7 +294,7 @@ async function main() {
);
ledgers = rows as LedgerRow[];
}
if (await tableExists(conn, 'sms_send_logs')) {
if (await tableExists(conn, database, 'sms_send_logs')) {
const [rows] = await conn.query(
`SELECT receiver, body, parts, price_per_part, total_amount, provider, source, is_alert, created_at
FROM sms_send_logs