[API reference](https://evolu.dev/docs/api-reference) › [@evolu/sqlite-wasm](https://evolu.dev/docs/api-reference/sqlite-wasm) › [c-api](https://evolu.dev/docs/api-reference/sqlite-wasm/c-api) › sqlite3\_backup\_init

```ts
function sqlite3_backup_init(
  deps: SqliteWasmDep,
): (
  pDest: SqliteDbPtr,
  zDestName: CStringPtr,
  pSource: SqliteDbPtr,
  zSourceName: CStringPtr,
) => 0 | SqliteBackupPtr;
```

Defined in: [packages/sqlite-wasm/src/CApi.ts:1566](https://github.com/evoluhq/evolu/blob/bc4578a260dd15d5bbf94b83765ca05984d194cb/packages/sqlite-wasm/src/CApi.ts#L1566)

Prepares to copy the database zSourceName of pSource, such as main, into the
database zDestName of pDest, which [sqlite3\_backup\_step](https://evolu.dev/docs/api-reference/sqlite-wasm/c-api/functions/sqlite3_backup_step) does, and
returns the backup, or NULL with the error in pDest. It fails while pDest has
any transaction open, when both are the same connection, and for an unknown
database name.

Wasm type `i(iiii)`. Signature `["sqlite3_backup_init", "sqlite3_backup*",
"sqlite3*", "string", "sqlite3*", "string"]` from SQLite's table.

See https://sqlite.org/c3ref/backup_finish.html.