Skip to content

SchemaCrawler web application for online generation of database diagrams and documentation

License

Notifications You must be signed in to change notification settings

schemacrawler/SchemaCrawler-Web-Application

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quick Build Integration Tests codecov

SchemaCrawler Web Application

Note: Please see the SchemaCrawler website for more details.

Technologies

This is a Spring Boot web application with a Bootstrap user interface, with source code control in GitHub, which is automatically built on every commit by GitHub Actions using a Maven build, tests are run, and coverage measured with JaCoCo and Codecov.io, and then immediately deployed to Heroku using a Docker image, which generates an crows-foot ERD of a SQLite database.

Build and Run

Build

  • Install Graphviz, which is a prerequisite for SchemaCrawler
  • Install Docker
  • Build application from Maven, run mvn clean package

Build Docker Image

  • Follow the steps above
  • Install Docker
  • Build application and Docker image from Maven, run mvn -Ddocker.skip=false clean package

Start the Server

  • Set the following environmental variables locally
    • AWS_ACCESS_KEY_ID
    • AWS_SECRET_ACCESS_KEY
    • AWS_S3_BUCKET
  • Do one of the steps below to start the web application locally on your system
    • Start the application from Maven, run
      mvn -Dspring-boot.run.fork=false spring-boot:run
    • Start application from the jar file, run
      java -jar target/schemacrawler-webapp-16.24.2.1.jar
    • Start the application from the local image in a Docker container, run
      docker run -d --rm --env AWS_ACCESS_KEY_ID=xxxxx --env AWS_SECRET_ACCESS_KEY=xxxxx --env AWS_S3_BUCKET=xxxxx -p 8080:8080 -t schemacrawler/schemacrawler-webapp

Use the Application

Then, after you ensure that the web server is running, either from the command-line, or the Docker container, open a browser to https://localhost:8080