Forum OpenACS Development: Porting an ACS Classic 4.x SYSTEM to OpenACS 4.x

The support of Oracle and Postgres in OpenACS 4.x is an obviously
great thing for allowing developers more alternatives for development
during the design phase. However, I was wondering what kind of
options it provided for a system that has previously been built on
one DB and needs to be ported to the other.

In other words, if I choose to build a system on Oracle becuase ACS
4.x exists Right Now (for some values of existence) what kind of
development time can I expect to port the system to PG? I imagine the
query dispatcher will make things easier, but will a developer end up
getting lost in the PL/SQL dependencies in Classic?

I imagine it's pretty obvious that it will be easier to port 4.x than
the mammoth kludge that is 3.x and another obvious thing is to
develop with porting in mind. But it would be helpful if anyone can
give me a clue as to what kinds of built in advantages OpenACS will
have for moving from one DB to the other.

tal

I'm not quite clear as to what you're asking.  Are you thinking of:

1. Building new packages or customized versions of existing packages that would be distributed?

or

2. Building a site with a customized version of 4.x, letting it run, gather data (bboard posts, ecommerce purchases etc), then port the site - including its data - to the other RDBMS?

Both cases share a basic problem, i.e. the need for two versions of the datamodel and the need to separate out Oracle-specific queries and  replace them with PG equivalents.  If its new code you're talking about, I'd recommend starting out writing query files and doing your best to split these files according to whether or not the queries are Oracle dependent right from the start.  I don't think this would add more than 20% to the task of developing and writing a simple package, and the percentage cost should be even less for a more complex package  (because a more complex package requires more advance design work which would be shared by both versions).

Moving an active, running site is another issue, because you have to massage the data as well as port your datamodel and queries.

I only know of one person who's moved an existing ACS Oracle site to OpenACS Postgres, Janine Sisk, and as a matter of fact she did it over this past weekend.  I don't think she's 100% done at this point.  She spent about all day Sunday on it and got most of the way there, though - that's not so bad.  The site's a demo site based on a client site she built last year.

I just checked, she's not done, so I won't pass along the URL.

Anyway, switching data from 4.x Oracle to 4.x Postgers is probably going to be a lot easier than migrating from 3.x Oracle to 4.x Oracle,  or Tcl 4.x to Java 5 ...

I was looking for your answer to the second question. Thanks.

tal