From 68d4f0469ef40db7fc2bfc0e6fdf25e01d8b1ef1 Mon Sep 17 00:00:00 2001 From: Simon Binder Date: Mon, 12 Oct 2026 14:21:15 +0200 Subject: [PATCH 1/2] sql.js adapter: Add warning for persistence section --- client-sdks/frameworks/expo-go-support.mdx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/client-sdks/frameworks/expo-go-support.mdx b/client-sdks/frameworks/expo-go-support.mdx index 55a7d0784..ec1435441 100644 --- a/client-sdks/frameworks/expo-go-support.mdx +++ b/client-sdks/frameworks/expo-go-support.mdx @@ -13,7 +13,7 @@ Expo Go is a sandbox environment that allows you to quickly test your applicatio This package is in an **alpha** release. - **Expo Go Sandbox Environment Only** This adapter is specifically designed for Expo Go and similar JavaScript-only environments. It will be much slower than native database adapters and has limitations. Every write operation triggers a complete rewrite of the entire database file to persistent storage, not just the changed data. In addition to the performance overheads, this adapter doesn't provide any of the SQLite consistency guarantees - you may end up with missing data or a corrupted database file if the app is killed while writing to the database file. + **Expo Go Sandbox Environment Only** This adapter is specifically designed for Expo Go and similar JavaScript-only environments. It will be much slower than native database adapters and doesn't support persistence reliably. ## Usage @@ -115,6 +115,14 @@ After adding PowerSync to your app: ## Data Persistence + +Support for persistence with `adapter-sql-js` is deprecated. The reason is that the implementation is inefficient, +doesn't provide consistency guarantees expected from SQLite, and doesn't work while the database is connected. + +If you need persisted data across app restarts, use the [recommended setup](/client-sdks/reference/react-native-and-expo#installation) +with a local app build instead of Expo Go. + + The default version of this adapter uses in-memory persistence, but you can specify your own `persister` option to the open factory. See an example in the package [README](https://www.npmjs.com/package/@powersync/adapter-sql-js). ## Moving Beyond Expo Go From 935455f4e54297adadd8de96bbe609d59fcc6f8e Mon Sep 17 00:00:00 2001 From: Simon Binder Date: Mon, 12 Oct 2026 17:18:09 +0200 Subject: [PATCH 2/2] AI feedback --- client-sdks/frameworks/expo-go-support.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client-sdks/frameworks/expo-go-support.mdx b/client-sdks/frameworks/expo-go-support.mdx index ec1435441..c3639e538 100644 --- a/client-sdks/frameworks/expo-go-support.mdx +++ b/client-sdks/frameworks/expo-go-support.mdx @@ -116,8 +116,8 @@ After adding PowerSync to your app: ## Data Persistence -Support for persistence with `adapter-sql-js` is deprecated. The reason is that the implementation is inefficient, -doesn't provide consistency guarantees expected from SQLite, and doesn't work while the database is connected. +Support for persistence with `@powersync/adapter-sql-js` is deprecated. The reason is that the implementation is inefficient, +doesn't provide consistency guarantees expected from SQLite, and writes are skipped as long as the database is connected. If you need persisted data across app restarts, use the [recommended setup](/client-sdks/reference/react-native-and-expo#installation) with a local app build instead of Expo Go.