roundware / roundware-server

Location-based contributory audio AR platform for art, education and documentary
http://roundware.org
Other
33 stars 20 forks source link

Change Roundware Database system? #184

Closed 13rac1 closed 8 years ago

13rac1 commented 10 years ago

Roundware Server is currently using MySQL, but there has been discussion about changing database systems. If we are going to make a drastic change, such as the database system, is ideal to do it now since we probably know of all existing installations. It'll be much easier to make the change now since it won't need to be so thoroughly documented and tested.

Other database options:

It seems to me that PostgreSQL is probably the best option since it will/should make it far easier to support #98 plus all other GIS related features. A database converter: https://github.com/lanyrd/mysql-postgresql-converter Lots of discussion: http://www.wikivs.com/wiki/MySQL_vs_PostgreSQL

hburgund commented 10 years ago

I have done some research on this issue over the years and it always seems that at the end of the day if you are doing GIS stuff and want some really cool features for storing and calculating GIS stuff in the db, PostgreSQL is the most fully-featured option.

And I don't think anyone would argue that adding more flexibility with the RW GIS capabilities isn't a good idea. We need more than just circles!!

I agree 100% that making another significant change like this is best to do sooner rather than later. In my mind, the only thing holding us back is resources and prioritization.

@eosrei do you have a good idea of how much effort is involved to do this? With the Django ORM in place, this sort of thing is supposed to be simple, but I don't have the experience. If it's not tons of work, I would argue to do it soon.

13rac1 commented 10 years ago

Related to #70

13rac1 commented 9 years ago

Some possibilities to deal with the database conversion:

Expected upgrade procedure, ideally this will be a pgsql-upgrade.sh/py:

There will need to be thorough tests to confirm that Django migrations will accept the database change.

13rac1 commented 9 years ago

@probabble I see you are working on this process. Have you looked into the data conversion options?

probabble commented 9 years ago

I haven't... how many deployments need to be migrated?

hburgund commented 9 years ago

Impossible to say the total deployments as I don't know who's grabbed the code and deployed something, but I can say that we are working directly on five different production servers currently, so that's the minimum. Not a huge number, but enough that a manual intensive process would be a pain, and public enough (Smithsonian etc) that we want to avoid as much downtime as possible.

@probabble have you done db changes before with django? I have not, but my impression is that fixtures in theory at least allow for exporting and importing in a db-type agnostic way? But maybe this is just wishful thinking?

probabble commented 9 years ago

I've always used postgres with Django as my interest has always been around the GIS stuff. Fixtures should continue to work if they are read in through django's orm and not directly injected into the db. It seems that there are quite a number of ways https://wiki.postgresql.org/wiki/Converting_from_other_Databases_to_PostgreSQL to migrate existing databases to postgresql, but I don't have personal experience with the chore.

On Mon, Mar 16, 2015 at 11:47 AM, Halsey Burgund notifications@github.com wrote:

Impossible to say the total deployments as I don't know who's grabbed the code and deployed something, but I can say that we are working directly on five different production servers currently, so that's the minimum. Not a huge number, but enough that a manual intensive process would be a pain, and public enough (Smithsonian etc) that we want to avoid as much downtime as possible.

@probabble https://github.com/probabble have you done db changes before with django? I have not, but my impression is that fixtures in theory at least allow for exporting and importing in a db-type agnostic way? But maybe this is just wishful thinking?

— Reply to this email directly or view it on GitHub https://github.com/roundware/roundware-server/issues/184#issuecomment-81863319 .

13rac1 commented 9 years ago

FWIW Roundware Server was originally created in pure Python. @hburgund and others added Django when a web interface was required. Long term (in-device audio for example) it may only be an Django application.

hburgund commented 8 years ago

Closed with #270 - migration to Postgres complete