Configuration¶
Configuring sql-lint to connect to your database of choice allows even more
errors to come through. Errors that sql-lint wouldn’t find itself. To do this
is easy, simply supply the connection details to your database in one of two
ways:
Via CLI¶
sql-lint --driver="mysql" --host="localhost" --user="root" --password="hunter2"
Via File¶
sql-lint will search the current working directory and its parent directories
for a configuration file .sql-lint.json. This allows you to have
directory-local configurations for different projects. If no .sql-lint.json
is found, it will fall back to the global configuration file.
A global configuration file for sql-lint can reside in
~/.config/sql-lint/config.json. It follows the XDG Base Directory
Specification.
Specifically, it uses $HOME/.config.
You can also manually specify a path for the config with the --config flag.
You should put the following in there for more intelligent errors to come through
{
"driver": "mysql",
"host": "localhost",
"user": "root",
"password": "hunter2",
"port": 3306
}
Configuration options¶
An exhaustive list of the configuration options for your config.json file are
below.
driver¶
The driver to be used to check for errors.
Accepted ones are mysql and postgres.
Optional, default is mysql.
host¶
The host of the database server.
user¶
The user for the database server.
password¶
The password for the database server.
ignore-errors¶
Don’t want to be warned about a particular error?
In that case add it to the ignore-errors array in ~/.config/sql-lint/config.json.
{
"host": "localhost",
"user": "root",
"password": "password",
"ignore-errors": [
"odd-code-point",
"missing-where"
]
}
The example above will skip checks for odd code points and DELETE statements with missing WHERE clauses.
For a full list of all available checks, see the check documentation
You cannot skip checks that are returned from the DB server itself, only the checks built into sql-lint.
Note that this option is also available as a flag on the cli. i.e.
sql-lint --ignore-errors=trailing-whitespace some-sql-file.sql
Multiple errors can be comma separated:
sql-lint --ignore-errors=trailing-whitespace,missing-where,hungarian-notation some-sql-file.sql
Example configuration¶
The below configuration contains every option available.
{
"host": "localhost",
"user": "root",
"password": "password",
"ignore-errors": [
"odd-code-point",
"missing-where",
"invalid-drop-option",
"invalid-create-option",
"invalid-truncate-option",
"invalid-alter-option",
"hungarian-notation",
"trailing-whitespace"
]
}
A word of warning¶
Do not version control your configuration file unless you know what you’re
doing. Stick it in your global .gitignore to be safe.