Skip to content

Proof of concept files for an implementation of an information model for complex natural science collections objects.

License

Notifications You must be signed in to change notification settings

chicoreus/cco_poc

Repository files navigation

cco_poc

Proof of concept files for an implementation of an information model for complex natural science collections objects.
Example to illustrate a manuscript by Morris, Macklin, Kelly, and Tocci and for discussion by the DINA consortium.

Schemas

DDL for a minimal example (entirely proof of concept) schema is in:
src/main/resources/edu/harvard/huh/specify/datamodel/cco_poc/db/tables.sql and
src/main/resources/edu/harvard/huh/specify/datamodel/cco_poc/db/changes.sql

DDL for a much more complete schema suitable for implementation is in:
src/main/resources/edu/harvard/huh/specify/datamodel/cco_full/db/tables.sql

Example data illustrating intended use of the schema for various sorts of simple and complex collections data is in:
src/main/resources/edu/harvard/huh/specify/datamodel/cco_full/db/exampledata.sql

The outline of a human readable information model is at:
src/main/resources/edu/harvard/huh/specify/datamodel/cco_full/model/model.md

Building CCO_FULL directly

mysql> drop database cco_full;
mysql> create database cco_full;

$ cd src/main/resources/edu_harvard/huh/specify/datamodel/cco_full/db/
$ mysql -p cco_full < tables.sql
$ mysql -p cco_full < functions.sql
$ mysql -p cco_full < baselinedata.sql
$ mysql -p cco_full < exampledata.sql

Building CCO_FULL with liquibase

This draft incorporates liquibase markup, but it should not yet be considered stable - you must drop and create a new database from scratch with each update.

Prerequisites

Software

  1. java ( tested with OpenJDK ver. 1.7.0_95 and Java 1.8.0_73 )
  2. maven
  3. either MariaDB/MySQL or postgreSQL

Default database

The default database should be MySQL in this repo, defined in the file liquibase.properties
You MUST create the database 'cco_full' before running the project.

mysql> drop database cco_full;
mysql> create database cco_full;

Liquibase database properties

At this time there is support for 2 DBMSes (MariaDB/MySQL and postgresql).

The basic configuration is in the following 2 template files in the config directory, you must copy one of these to config/liquibase_cco_full.properties, and then provide your user credentials.

  1. for MariaDB/MySQL see the liquibase_cco_full.properties.mysqltemplate file
  2. for postgreSQL see the liquibase_cco_full.properties.postgrestemplate file

config/liquibase_cco_full.properties is in .gitignore and should not be put under version control (as it contains your credentials).

For MariaDB/MySQL

You must copy the config/liquibase_cco_full.properties.mysqltemplate to config/liquibase_cco_full.properties, and then add your credentials to the file.

$ cp config/liquibase_cco_full.properties.mysqltemplate config/liquibase_cco_full.properties
$ vim config/liquibase_cco_full.properties

For Postgresql

  1. be sure that you have postgreSQL installed

  2. create the schema 'cco_full', check the credentials in the liquibase.postgresql.properties-file

  3. replace liquibase_cco_full.properties with the liquibase_cco_full.properties.postgrestemplate.

    $ cp config/liquibase_cco_full.properties.postgresqltemplate config/liquibase_cco_full.properties $ vim config/liquibase_cco_full.properties

To build the database with Liquibase

To run the project type 'mvn clean install' in the same directory that the pom.xml-file resides. You must have first met the prerequisites listed above, including creating the database schema and having copied a template to config/liquibase_cco_full.properties and added your database credentials to that file.

mvn clean install

If you wish to include the examples, use the cco_full_examples profile instead:

mvn clean install -P cco_full_examples

Configuration Files

For maven.

  • pom.xml
    • db: mysql-connector-java (version '5.1.37')
    • db: mysql ( version 5.5.49)
    • db: postgresql (version '9.1-901-1.jdbc4')
    • liquibase (version '3.4.2')
    • liquibase-maven-plugin (version '3.0.5')

For the liquibase-project.

  • config/liquibase.properties (you must create from one of the templates and set your credentials)
    • contains : driver and url to the database
    • contains : credentials
    • contains : path to the master.xml-file
    • contains : additional such as ; 'verbose = true', 'dropFirst = false'
  • master.xml
    • contains : path to 'db.changelog-x.y.xml' , x.y are version-nr.

About

Proof of concept files for an implementation of an information model for complex natural science collections objects.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages