对于数据量较大的sql文件,无法直接放到控制台执行。这时候有很多方法:如文件分拆、程序读取等方式。以下介绍一种程序读取导入的方式:
代码如下所示:
const { Pool } = require('pg');
const fs = require('fs');
const path = require('path');
// 创建数据库连接池
const pool = new Pool({
user: 'postregs',
host: 'localhost',
database: 'postgres',
password: 'postgres',
port: 5432,
});
(async () => {
try {
// 读取 SQL 文件内容
const sqlFilePath = path.join(__dirname, 'your_sql_file.sql');
const sql = fs.readFileSync(sqlFilePath, 'utf-8');
// 执行 SQL 文件中的内容
const client = await pool.connect();
await client.query(sql);
console.log('SQL 文件执行成功!');
client.release();
} catch (err) {
console.error('执行失败:', err.message);
} finally {
await pool.end();
}
})();