Я не могу понять, как выполнить пакетный вызов сгенерированных запросов последовательно.
Я пытаюсь обрезать каждую таблицу в БД. Мой код:
db.any(`
SELECT table_name
FROM information_schema.tables
WHERE table_schema='public'
AND table_type='BASE TABLE';
`)
.then(res => res.map(item => item.table_name)) // To get only an array with the names
.then(tables => tables.map(tableName => db.none(`TRUNCATE TABLE ${tableName} CASCADE`))) // ES6 template strings, because the table name must be bare here (no quotes)
.then(queries => db.tx(t => t.batch(queries)))
Я получаю Обнаружена тупиковая ошибка . Понятно, почему я получаю взаимоблокировки: запросы каскадно пытаются обрезать ту же таблицу, что и другой запрос. Вот почему мне нужно вызывать запросы синхронно. Я не могу понять, как это сделать. Я пытался использовать db.sequence()
, но получал те же ошибки. Каков правильный способ последовательного выполнения сгенерированных запросов с pg-promise
? Большое спасибо.