Bug #183
closedPort metacat to PostgresSQL and other databases
0%
Description
To install Metacat broadly at research stations, we need to eliminate the
requirement for Oracle as a backend DB. Thus, we need to port Metacat so that
it can use PostgresSQL and probably MS SQL Server. To do this, we should create
a database interface class that implements the SQL calls needed for each
database system. At runtime, Metacat would then load the proper database
adapter (that implements the interface) and thus have access to the specific SQL
cals needed to access that database. The changes to Metacat involved in this
will mainly be limited to two classes (DocumentImpl.java and
QuerySpecification.java) as these are the main classes that execute SQL calls,
although there will also be some work needed in the AccessControlList.java,
DBDTDHandler, DBEntityResolver, DBSAXHandler, DBSAXNode, DBUtil,
ForceReplication and ReplicationHandler classes. Owen has agreed to work on this
as well.
Updated by Matt Jones almost 24 years ago
John Harris has agreed to look into the use of an embedded database for portions
of metacat and the plots db client software, and so should work with Owen to
develop a suitable database abstraction interface that would work for the
embedded database situation as well as postgres and sql server.
Updated by Matt Jones over 23 years ago
At Santa Barbara meeting, agreed to create a generic database interface and a
series of adapters for each supported datbase type, including oracle, SQL
Server, PostgresSQL, Enhydra instantDB, etc.
Updated by Matt Jones over 23 years ago
I noticed that new classes that implement this functionality were checked in (by
Jivka). I have some file naming suggestions. The current interface is called
"DBAdapter", when in Java-ese an "Adapter" is usually a specific implementation
of an interface. So here's what I suggest to rename the files:
DBAdapter.java --> AbstractDatabase.java
DBOracle.java --> OracleAdapter.java
DBPostgresql.java --> PostgresqlAdapter.java
What do you think?