EventSyncDatabase/EventSyncDao/RoomEventStore (Schema identisch zu den per-App-Kopien, version 1) + createEventSyncDatabase-Factory. Lockstep- Versionierung mit mana-kotlin-event-sync. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
36 lines
1.4 KiB
Markdown
36 lines
1.4 KiB
Markdown
# mana-kotlin-event-sync-room
|
|
|
|
Room-Adapter für `ev.mana:mana-kotlin-event-sync` — die Android-Persistenz
|
|
(`EventStore`-Implementierung) zur sonst pure-JVM-Engine. Ersetzt die
|
|
früheren identischen per-App-Kopien (`RoomEventStore`/`EventSyncDao`/
|
|
`EventSyncDb` in wordeck/pageta/zitare/nutriphi/stetick-android).
|
|
|
|
- **Artefakt:** `ev.mana:mana-kotlin-event-sync-room` (Forgejo-Maven,
|
|
`git.mana.how/api/packages/till/maven`)
|
|
- **Versionierung:** Lockstep mit `mana-kotlin-event-sync` (gleiche Version).
|
|
- **Inhalt:** `EventSyncDatabase` (Room, version 1: `events`/`outbox`/`meta`),
|
|
`EventSyncDao`, `RoomEventStore`, `createEventSyncDatabase(context, name)`.
|
|
|
|
## Migration aus einer App-Kopie
|
|
|
|
```kotlin
|
|
// vorher (per-App-Kopie):
|
|
val db = Room.databaseBuilder(context, WordeckDatabase::class.java, "wordeck.db").build()
|
|
val store = RoomEventStore(db.dao())
|
|
|
|
// nachher:
|
|
import ev.mana.eventsync.room.RoomEventStore
|
|
import ev.mana.eventsync.room.createEventSyncDatabase
|
|
val db = createEventSyncDatabase(context, "wordeck.db") // ALTER DB-Name!
|
|
val store = RoomEventStore(db.dao())
|
|
```
|
|
|
|
**Wichtig:** Der DB-Dateiname muss der bisherige bleiben — das Schema ist
|
|
identisch (version 1), bestehende Event-Logs werden nahtlos weiterverwendet.
|
|
|
|
## Build
|
|
|
|
```bash
|
|
JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home" ./gradlew assembleRelease
|
|
FORGEJO_TOKEN=… ./gradlew publish
|
|
```
|