database.deserialize(buffer[, options])
buffer<Uint8Array> 数据库的二进制表示,例如database.serialize()的输出。options<Object> 反序列化的可选配置。dbName<string> 要反序列化到的数据库名称。 默认值:'main'。
将序列化的数据库加载到此连接中,替换当前数据库。反序列化后的数据库是可写的。在尝试反序列化之前,现有的预处理语句会被终止,即使该操作随后失败。此方法是 sqlite3_deserialize() 的一个封装。
🌐 Loads a serialized database into this connection, replacing the current
database. The deserialized database is writable. Existing prepared statements
are finalized before deserialization is attempted, even if the operation
subsequently fails. This method is a wrapper around
sqlite3_deserialize().
import { DatabaseSync } from 'node:sqlite';
const original = new DatabaseSync(':memory:');
original.exec('CREATE TABLE t(key INTEGER PRIMARY KEY, value TEXT)');
original.exec("INSERT INTO t VALUES (1, 'hello')");
const buffer = original.serialize();
original.close();
const clone = new DatabaseSync(':memory:');
clone.deserialize(buffer);
console.log(clone.prepare('SELECT value FROM t').get());
// Prints: { value: 'hello' }const { DatabaseSync } = require('node:sqlite');
const original = new DatabaseSync(':memory:');
original.exec('CREATE TABLE t(key INTEGER PRIMARY KEY, value TEXT)');
original.exec("INSERT INTO t VALUES (1, 'hello')");
const buffer = original.serialize();
original.close();
const clone = new DatabaseSync(':memory:');
clone.deserialize(buffer);
console.log(clone.prepare('SELECT value FROM t').get());
// Prints: { value: 'hello' }