Move store storage behind an interface with a SQLite backend
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 38/100
Direzione di ricerca
Start by locating Warehouse and the core module to understand how stores are currently loaded and saved; then inspect the existing test setup and SQLite JDBC dependency. The issue calls for a repository interface, SQLite and in-memory implementations, schema versioning, and a transaction log, but does not name specific files or tests. Done means the plugin uses SQLite for persistence, survives an unclean server shutdown, and tests use the in-memory implementation.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
Stores are saved to a single HOCON file by Warehouse. The whole file is rewritten on save, data can be lost if the server doesn't shut down cleanly, and there's nowhere to keep a transaction history.
Goal
Move storage behind an interface, with SQLite as the default backend for 1.0.
Scope
- A repository interface (for example
StoreRepository) incore, with one implementation per backend. - A SQLite implementation. Spigot and Paper already bundle the SQLite JDBC driver.
- Keep store details (name, owner, location, flags) in memory, because the entrance check runs on every player move. Write item and balance changes as they happen, or shortly after in the background. Data must not depend on a clean shutdown.
- A
schema_versiontable from the start, so later schema changes can be applied automatically. - A transaction log table.
- An in-memory implementation for tests. Making it selectable in the config is a stretch goal.
Out of scope
- Importing existing 0.x data (separate issue).
- MySQL or other remote databases.
Done when
- The plugin runs entirely on SQLite, and stores survive a server crash (
kill -9). - Tests use the in-memory implementation.
- Lingua principale
- Java
- Stelle
- 1
- Fork
- 0
- Merge medio
- 2h 35m
- PR unite (30g)
- 14
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di BrendonButler/Shops
-
dependencies enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
BrendonButler/Shops#79 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
BrendonButler/Shops#70 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
BrendonButler/Shops#69 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
BrendonButler/Shops#68 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
BrendonButler/Shops#67 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di BrendonButler/Shops
Issue simili
-
type: dependency-upgrade
Difficoltà 2/5 1-3 ore Idoneità per principianti 61/100
spring-projects/spring-graphql#1556 ·
-
hermes-queue
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 91/100
chrisalunlloyd2-sudo/mindpalace#373 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
bug priority: lowest
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
SkriptLang/Skript#8953 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
quality-assurance
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
Paul-Austin-Oswego-CSC480-HCI521/gift-app#228 ·
I maintainer di solito rispondono entro 1 giorno