Ugye nem árulok zsákbamacskát, ha elárulom, hogy szükségem lesz a Datastore API-ra, hiszen nyilván szeretnénk adatokat megőrizni, pl. magukat a wiki oldalakat.
Fater a minap mesélt az UUID-ről (végre tudom mik azokat a csúnya GUID-k a Visual Studio projektfájljaiban) és gondoltuk, hogy szuper lenne ez a wiki rendszerben is. Több előny is van (teljesség igénye nélkül):
- Az alkalmazás generálja magának az ID-t, nem pedig az adatbázistól kérjük le, ez eléggé hasznos tud lenni, illetve alkalom adtán megspórolunk egy lekérdezést
- Ha netalán-tán export-importra lesz szükség (miért ne lenne? egy kis backup?), akkor nem kell tökölni az ID-kkal, hogy most a két adatbázis különbözik, mi legyen, hogy legyen, minden kapcsolatot egyeztetni... Egy az egyben mehet az import. Kicsi az esélye a konfliktusnak.
Itt jött a bukta. A Google App Engine nem engedi olyan String-ek kulcsként való használatát, ami számmal keződik, vagy 2 darab aláhúzás karakterrel kezdődik és végződik (__*__). Hogy miért? Ne kérdezzétek, nem értem. A Python SDK-nál volt erről valami kis bejegyzés:
ADe nekem ez nem elég magyarázat. Java SDK doksija egy szóval nem is említi ezt a tényt. Mindenestre beküldtem, mint bugot és várom a magyarázatot, hogy ez miért van. Ha van valódik oka ennek, akkor nem lenne gond, de nekem ezzel miért kell fogalkoznom? Csinálja meg helyettem GAE...key_nameis stored as a Unicode string (withstrvalues converted as ASCII text). Akey_namemust not start with a number, and must not be of the form__*__(start and end with two underscores). If your application uses user-submitted data as datastore entity key names (such as an email address), the application should sanitize the value first, such as by prefixing it with a known string, to meet these requirements.
To be continued...
0 megjegyzés:
Megjegyzés küldése