2022-05-29 21:29:10 +02:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
DEFAULT_OUTPUT="./schema.sql"
|
2023-05-29 18:46:14 +02:00
|
|
|
DEFAULT_DNPROPS="./dev/scripts/dbschema-generate.datanucleus.properties"
|
2022-05-29 21:29:10 +02:00
|
|
|
|
|
|
|
function printHelp() {
|
|
|
|
echo "Generate the database schema for Dependency-Track."
|
|
|
|
echo ""
|
|
|
|
echo "Usage: $0 [-o <OUTPUT_FILE>] [-p <PROPERTIES_FILE>]"
|
|
|
|
echo "Options:"
|
|
|
|
echo " -o Set output path for the schema (default: $DEFAULT_OUTPUT)"
|
|
|
|
echo " -p Set path to DataNucleus properties (default: $DEFAULT_DNPROPS)"
|
|
|
|
echo ""
|
|
|
|
echo "This script uses the DataNucleus schema tool:"
|
|
|
|
echo " https://www.datanucleus.org/products/accessplatform/jdo/persistence.html#schematool"
|
|
|
|
echo ""
|
|
|
|
}
|
|
|
|
|
|
|
|
while getopts ":h:o:p:" opt; do
|
|
|
|
case $opt in
|
|
|
|
o)
|
|
|
|
output=$OPTARG
|
|
|
|
;;
|
|
|
|
p)
|
|
|
|
dnprops=$OPTARG
|
|
|
|
;;
|
|
|
|
h)
|
|
|
|
printHelp
|
|
|
|
exit
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
printHelp
|
|
|
|
exit
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
|
|
mvn datanucleus:schema-create \
|
|
|
|
-DpersistenceUnitName=Alpine \
|
|
|
|
-Dprops="${dnprops:-$DEFAULT_DNPROPS}" \
|
|
|
|
-DcompleteDdl=true \
|
|
|
|
-DddlFile="${output:-$DEFAULT_OUTPUT}" \
|
2023-05-29 18:46:14 +02:00
|
|
|
-Dlog4jConfiguration=./dev/scripts/dbschema-generate.log4j.properties
|