coinbox

40 views
Skip to first unread message

Jonathan Aquilina

unread,
Oct 22, 2013, 3:09:22 AM10/22/13
to coinb...@googlegroups.com
Hey guys I know you are all busy, but to give you an update i am getting ever closer to pushing towards deploying coinbox on an embedded system.

Is there anything i can work on in terms of coinbox?

--
Jonathan Aquilina

Jad Kik

unread,
Oct 22, 2013, 12:25:00 PM10/22/13
to coinb...@googlegroups.com
Hey Jonathan! Sorry we've not been very active lately :(

That's great news :)

Regarding development, I was working on something, but I stopped because I had to make choices, so I'm thinking about these.

I was thinking about how to handle updates and installation of new modules in terms of database. Currently, I just clear the database and re-create the tables, but in a production environment that's not feasible.

So I was looking into a way to migrate databases in a production environment. There are 2 choices:
- Manually run a bunch of SQL files everytime we update, we'll have to provide these for every module on every supported RDBMS
- Automatically, using migration tools or using our own system. The problem is that the migration tools are mostly designed with development schema migrations, and need a lot of configuration. So they're not suited for production environments (AFAIK).

I started thinking about what we would need to do for this:
  1. we need versioning of the database (independent of the versioning of the modules themselves)
  2. we need scripts to handle schema changes from one version to the next one
  3. probably a way for one module to update its part-of-a-schema when another is installed... (or let the tables already be there, even if unused for example)

What do you think?

Regarding the contribution to github. If you already have a github account, just fork the repository you're interested in, make a pull request and we'll merge it. You need to set up the environment properly before though, use pip (I think there's a guide on the website). Then clone your fork, install using pip or setup.py. The only issue though is documentation. The "core" part is documented (most of it at least), and if you skim through it and check the code of some other module it'll be clearer I guess.

Apart from this, the next thing on the todo list is some changes in the schema (mostly metadata, things related to modules/versioning/updates), unit tests and documentation. Then there's the reports (feature wise) which I've already worked on on wxPos and can be re-used. Then there's localization because there are still parts where the text is not translated and also the actual translation of the strings (which should come last). And UI. Oh and error handling, I'm thinking of catching exceptions and showing a descriptive error message accordingly.

So, let's do one thing at a time, when we get the time. :)

Tim Hoffman

unread,
Oct 22, 2013, 9:04:37 PM10/22/13
to coinb...@googlegroups.com
I am sure you probably have already looked at it, but thought I would mention it just in case, 

Does Alembic meet your db schema migration requirements https://bitbucket.org/zzzeek/alembic

T

Jonathan Aquilina

unread,
Oct 23, 2013, 12:59:49 AM10/23/13
to coinb...@googlegroups.com
Jad that is why i suggested django because for it they have whats called django-south which makes upgrading and enhancing the database that much easier.


I dunno about what the others feel but seeing as this makes upgrading of the database easier i think django should be something we consider. 

How much work has been done on the UI?


--
You received this message because you are subscribed to the Google Groups "Coin Box POS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to coinboxpos+...@googlegroups.com.
To post to this group, send email to coinb...@googlegroups.com.
Visit this group at http://groups.google.com/group/coinboxpos.
For more options, visit https://groups.google.com/groups/opt_out.



--
Jonathan Aquilina

Jad Kik

unread,
Oct 23, 2013, 1:52:02 AM10/23/13
to coinb...@googlegroups.com
SQLAlchemy has a similar tool called Alembic. It has almost the same set of features as South.

I already looked at these and it seems to me those might not work in a "branching" environment, they have a linear approach to migration. I.e. do this then that then that and you have your db. We need other things as well because there are modules, and each one has its set of operations to run.

Now, alembic has something like this I think, from what I've seen but I'm not sure if it can be integrated as an automatic update. That's why I was still looking into it. I definitely don't want to recreate the wheel, nor do I want a that the users become sysadmins overnight.

Regrding Django, there is a similar tool for sqla, so this is not what will make a difference. And when you run coinbox you can see how much work has been done on the UI, quite a bit.

Jonathan Aquilina

unread,
Oct 23, 2013, 3:26:03 AM10/23/13
to coinb...@googlegroups.com
ok i wasnt sure what tools were out there for what has already been done. Jad i think for updates we would need to create sql query scripts to update necessary things.


--
You received this message because you are subscribed to the Google Groups "Coin Box POS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to coinboxpos+...@googlegroups.com.
To post to this group, send email to coinb...@googlegroups.com.
Visit this group at http://groups.google.com/group/coinboxpos.
For more options, visit https://groups.google.com/groups/opt_out.



--
Jonathan Aquilina
Reply all
Reply to author
Forward
0 new messages