Variable Database
Define structural code in an interface:
interfaces/home/Itham/conf:: storage($db): items@0.0.1($table): - name: string - value: string - creation: datetime
Load the interface from an activity:
home/Itham/items:: items$v001 = string(..conf).structure.storage['items@0.0.1'] def newItem(name, value): for i in items$v001.get('name', name): i.value = 'text/json/dumps'(value) break else: # The order of arguments in this constructor must match conf. i = items$v001(name, 'text/json/dumps'(value), now()) i.save() def getItemValue(name): for i in items$v001.get('name', name): return 'text/json/loads'(i.value) def getItem$(name): return .getItemValue(name) def setItem$(name, value): .newItem(name, value) return $(..items)
In order to open the database with the .structure
property it must be configured
in the filesystem. The name of the database (storage
) must be included in the
configuration in order to differentiate databases in a single interface:
agent vardb add variables/key-value/items-1.sqlite 10000000 home Itham conf storage
Initialize the activity module and load key-value data:
initialize('home/Itham/items')['player:itham:world:0000'] = \ mapping(name = 'My world', rooms = \ mapping([01, mapping(name = 'My room')]))
Last modified
5 months ago
Last modified on 09/09/22 14:35:43
Note:
See TracWiki
for help on using the wiki.