-
Notifications
You must be signed in to change notification settings - Fork 26
Closed
Labels
VCell-7.5.0Needed for Release 7.5Needed for Release 7.5
Description
Background
The database layer in VCell consists of the following 4 layers (simplified):
- Our Data Definition Layer
- hand coded Java classes which are one-to-one with tables in the VCell database (see
cbit.sql.Tablesubclasses) cbit.sql.CompareDatabaseSchema: tooling to query a database for its table definitions (DDL) and compare our Java classes and suggest needed changes).cbit.vcell.modeldb.SQLCreateAllTables.java: tooling to create a new database schema within a database server, populating all needed VCell tables with Constraints and Sequences.
- hand coded Java classes which are one-to-one with tables in the VCell database (see
- Our Database Driver Layer (like low level ORM - Object/Relational Mapping).
- subclasses of
cbit.vcell.modeldb.DbDriver(andcbit.sql.Table) generate and invoke SQL to create, retrieve, update, and delete records in our database.
- subclasses of
- Our Transaction Layer which manages database connections, retries, commits and rollbacks.
- subclasses of
cbit.vcell.modeldb.AbstractDbTopLeveldriven bycbit.vcell.modeldb.DatabaseServerImpland incremental saves of complex documents via thecbit.vcell.modeldb.ServerDocumentManager.
- subclasses of
- Database Service/Communication Layer
- implementations of
cbit.vcell.server.UserMetaDbServerandcbit.vcell.server.AdminDatabaseServeraccessed by the client via a VCellConnection or more directly by our backend servers.
- implementations of
Support either Oracle and Postgres in database layers
- Layer 1: (Data Definition Layer) - not much to do here - translate a few SQL data types - and make sure we can generate all of the VCell tables in a new Postgres database.
- Layer 2: (Database Driver Layer) - first pass was done 6 years ago, but considerable work was needed to modify and upgrade our SQL statements to a subset which is understood by both Oracle 11g and latest Postgres.
- primary work is removing the Oracle-only syntax '(+)' for outer table joins and replace and test both Oracle and Postgres with the modern SQL syntax for outer joins.
- update other SQL syntax as needed.
Metadata
Metadata
Assignees
Labels
VCell-7.5.0Needed for Release 7.5Needed for Release 7.5
Type
Projects
Status
Done