DataStore is the main component of a series of addons that serve as data repositories in game. Their respective purpose is to offer scanning and storing services to other addons.
The advantages of this approach are:
- data is scanned only once for all client addons (performance gain).
- data is stored only once for all client addons (memory gain).
- addon authors can spend more time coding higher level features.
- each module is an independant addon, and therefore has its own SavedVariables file, meaning that you could clean _Crafts without disturbing _Containers.
Scope : a note to contributing authors
The core of the database is based on my work in Altoholic, and is thus designed with multiple-account support in mind. If client addons want to store data from foreign accounts, the database will be ready for it. Nothing is final at this point though, feel free to contribute, as the concept can and will be perfected.
The scope of each addons is to provide common methods for client addons. For instance, DataStore_Crafts embeds LibPeriodicTable-3.1-Tradeskill allowing it to give more than just scanning & storing data. However, the goal is not to put _everything_ into these addons, they must be seen as an abstraction layer and a service provider, nothing more.
These libraries cannot and should not be embedded, as they all manage their respective SavedVariables.
Existing modules
- DataStore_Achievements : Achievements
- DataStore_Agenda : Calendar & Raid ID's
- DataStore_Auctions : Auctions & Bids
- DataStore_Characters : Base information about your characters
- DataStore_Containers : Bags, Bank and Guild Banks
- DataStore_Crafts : Tradeskills & Recipes
- DataStore_Currencies : Currencies
- DataStore_Inventory : Equipment
- DataStore_Mails : Mails
- DataStore_Pets : Companions & Mounts
- DataStore_Quests : Quest log
- DataStore_Reputations : Reputations
- DataStore_Spells : Spells
- DataStore_Stats : Character Statistics
- DataStore_Talents : Talent trees & Glyphs
Each module will exist as a separate addon, so that authors can package only the ones they want with their own project.
More modules will come later.
Information Pages
- Project overview : A slightly more detailed overview of the scope
- API : Samples of commonly used methods (work-in-progress)
Facts
- Date created
- Jul 30, 2009
- Category
- Last update
- Mar 12, 2013
- Development stage
- Release
- License
- All Rights Reserved
- Curse link
- DataStore
- Reverse relationships
- 1
- Downloads
- 475,832
- Recent files
Authors
Relationships
- Embedded library
- Ace3
- CallbackHandler-1.0
- LibAboutPanel
- LibPeriodicTable-3.1
- LibStub
- Reply
- #28
Thaoky Mar 12, 2013 at 09:29 UTC - 0 likes@WoWEye: Go
Yes it will, DataStore & its modules are the foundations of Altoholic, so the latest versions must ALWAYS be used.
I recommend making a manual download of Altoholic, and to avoid the Curse Client. It is fine for simple addons, but with the architecture of Altoholic+DataStore, the packaging system is not always working fine. I discussed this with admins in the past, it would require big changes on their side to make it work smoothly, so we have to live with it.
- Reply
- #27
WoWEye Feb 15, 2013 at 18:58 UTC - 0 likesI notice that updating Altoholic (with curse client) for some reason does not grab the updated DataStore files. Example - my datastore mails is r26 and when i look here there's r38....
Now, if i grab the r38 and drop it in my folder, will it play nice with the rest of the addon ??
- Reply
- #26
UABMaddog Aug 19, 2012 at 15:24 UTC - 0 likesI have several accounts and use several computer. I was curious if there is a way to copy the database files between computers to keep the data up to date. I log onto all my toons once a month and open their bank/guild bank/bags/professions to keep track of mats and skills. I would love to do this on one computer and use it as the "master" to clone/copy to the other computers.
- Reply
- #25
Hendo72 Jun 17, 2012 at 16:59 UTC - 0 likesOut of curiosity, what would be un-installing ALL of my DataStore files? I've had to re-install my DataStore files twice in the last couple weeks.
I'm guessing I've updated one of my addons, but I don't understand why it would remove these files.
- Reply
- #24
Farmbuyer Dec 16, 2011 at 04:58 UTC - 0 likes@kitty1967: Go
I answered that ticket. It's a Blizzard bug, DataStore has nothing to do with it. Any addon doing anything with menus will be blamed for it. You cannot set a focus using a dropdown menu or you will stumble across their bug, and the addon blamed by the popup has no responsibility whatsoever. You must use the /focus command or set the builtin keybinding to do the same thing.
This is a long-known bug. Google can tell you more if you're prefer to ignore advice.
- Reply
- #23
WOWVern Dec 03, 2011 at 23:58 UTC - 0 likesIs there going to be an update for 4.3?
- Reply
- #22
kitty1967 Jun 16, 2011 at 23:38 UTC - 0 likesIs this project still active? I continuously get a DataStore error when I try to set focus on someone. After clearing the error, attempting to set focus does nothing. Quite aggravating, I use /assist focus in many of my macros.
- Reply
- #20
Zabeard Oct 19, 2010 at 15:45 UTC - 0 likesIf there is a particular module not enabled, e.g. with the DataStore_Quests being bugged at the moment and preventing handing in quests. It would appear that although the calling code gets an assert due to the assert(type(module) == "table") lines in the code. Would it not be better to return 0 in replacement of lastUpdate value from the modules this way callees could tell that the information is not available and disable buttons as appropriate. I believe this is what Altoholic is trying to do, but before it can the assert kicks in.
This would mean that if one or more modules are disabled the callee's can fail gracefully instead of be abused with an assert.
- Reply
- #19
Thaoky Aug 27, 2010 at 13:13 UTC - 0 likesI haven't tested the wowhead addon, but if I can find anything interesting I could reuse, I will. Anyway, it's my goal to avoid having to open tradeskills to get the whole list, I know it can be done by simply using the profession link, but with certain constraints. I plan to review that part for Cataclysm, hoping that new API functions will make it easier.
- Reply
- #18
quased Aug 27, 2010 at 10:40 UTC - 0 likesI'm really missing an option to automatically scan all tradeskills at login. I'm currently using the wowhead addon's "/wl collect" command to populate my DataStore database, but it seems like overkill since the wowhead addon uses resources aplenty.