-
-
Notifications
You must be signed in to change notification settings - Fork 26
Open
Labels
Description
current
the sql files in migrations/schema, migrations/seed and migrations/testseed are not linted
expected
1. lint sql files with https://hub.docker.com/r/sqlfluff/sqlfluff
example commands:
i) single file
docker run -it --rm -v $PWD:/sql sqlfluff/sqlfluff:3.2.5 lint --dialect postgres migrations/schema/000001_account.up.sqlii) directories
docker run -it --rm -v $PWD:/sql sqlfluff/sqlfluff:3.2.5 lint --dialect postgres migrations/schema2. using the --fix flag adds zero changes to linted sql files
example:
assuming migrations/schema/test.sql
CREATE TABLE account (
name character varying(255) NOT NULL PRIMARY KEY,
password text,
created_by character varying(255), -- NOT NULL == subaccount
created_at timestamptz NOT NULL DEFAULT CURRENT_TIMESTAMP
);
docker run -it --rm -v $PWD:/sql sqlfluff/sqlfluff:3.2.5 lint --dialect postgres migrations/schema/test.sql returns 0 errors
3. add a migrations/.sqlfluff config file with contents:
[sqlfluff]
dialect = postgres
now commands require a --config instead of a --dialect flag
docker run -it --rm -v $PWD:/sql sqlfluff/sqlfluff:3.2.5 lint --config migrations/.sqlfluff migrations/schema/test.sqldoc: https://docs.sqlfluff.com/en/stable/reference/cli.html
4. add "sql linting" section in migrations/README.md documenting example lint commands
example:
docker run -it --rm -v $PWD:/sql sqlfluff/sqlfluff:3.2.5 lint --config migrations/.sqlfluff migrations/schema
docker run -it --rm -v $PWD:/sql sqlfluff/sqlfluff:3.2.5 lint --config migrations/.sqlfluff migrations/seed
docker run -it --rm -v $PWD:/sql sqlfluff/sqlfluff:3.2.5 lint --config migrations/.sqlfluff migrations/testseedMetadata
Metadata
Assignees
Labels
Type
Projects
Status
No status