schemacrawler / SchemaCrawler

Free database schema discovery and comprehension tool
http://www.schemacrawler.com/
Other
1.62k stars 199 forks source link

improve documentation: add information about used environment variable SC_HOME #431

Closed aisbergde closed 3 years ago

aisbergde commented 3 years ago

New Feature Request

it could be hard to find the SchemaCrawler home directory. A small hint should be added in the documentation

For example

https://www.schemacrawler.com/database-support.html describes how to connect to databases.

There is one line

For any other database that includes a compliant JDBC driver, place the JDBC in the SchemaCrawler lib directory.

But it hard to find this lib directory, if you don't know where to search and that an environment variable exists

I use chocolatey to install (as recommended), and I found the folder only investigating the "C:\ProgramData\chocolatey\lib\schemacrawler\tools\chocolateyInstall.ps1" to find out, that an environment variable is used: 'SC_HOME' and only then I was able to find the lib folder: "C:\ProgramData\chocolatey\lib\schemacrawler\schemacrawler-16.14.1-distribution_schemacrawler\lib"

SC_HOME is clear for you, but not every user will associate SC_HOME with SchemaCrawler

A bit more information / documentation, how to find the SchemaCrawler folders would help. For example:

SchemaCrawler uses environment variable to point to the installed package: SC_HOME to find to lib folder, use on windows: %SC_HOME%\_schemacrawler\lib on linux: ...?

These are only a few lines of additional documentation, but this will help to use SC a lot.

sualeh commented 3 years ago

The Chocolatey package is not distributed or maintained by SchemaCrawler.

aisbergde commented 3 years ago

But here https://www.schemacrawler.com/downloads.html I found:

For Windows, SchemaCrawler is also available via the Chocolatey package manager, as well as via Microsoft Windows Package Manager, winget.

Would it be so hard to add a little sentence here about this environment variable, in case someone (like me) actually follows this hint, and installs with choco? It would help other users to find the installation folder, containing examples, lib and so on.

There are so many examples, so much work was put into this project. Why not make it easier to find with a few small additions to the documentation?

sualeh commented 3 years ago

@aisbergde - my policy is not to document other people's projects, since I am not going to be able to keep that updated. I can include a link to the Chocolatey project on GitHub on the website. In any case, have you gone through all of the examples in the main distribution?

aisbergde commented 3 years ago

@sualeh I got it. It was not clear for me that creating the choco for SchemaCrawler is done by other people. I have seen this on your website and I thought, it is maintained by the SchemaCrawler project. Sorry for misunderstanding. image

I haven't gone through all the examples yet, since I don't know most of the languages used there. Because I only work with databases, but do not program otherwise. I looked at them without understanding everything. What I do understand though: You could do a lot of things if you would study it intensively :-)

After all, I have to plan where to start. First I have to get the basics right, so use all non-system schemas, grep and filter with parents and children #436, then create and use the YAML for the attributes from databases. Then to find a way how to call SC from the database or from a database management GUI using an object or an object column and parents and children as parameter to generate the diagrams for these objects with n parents and m children and how to present these diagrams. I want to use SchemaCrawler as you do in the shell, but using SSMS or Azure Data Studio or some other GUI for interactive diagram generation. Or for generating all diagrams for all objects with some sets of parents and children. And maybe the resulting diagrams, which will be batched created, could be even stored back into the database to be used if required.

These are my crazy plans, and I think, templating will help. Maybe I will start with Python because sometimes I already use Python.

And "on the side" I'm still working full time in a project :-)