Validate command
The validate command validates one or many SurrealQL (.surql) language files.
Make sure you’ve installed SurrealDB — it should only take a second!
Command options
| Arguments | Description |
|---|
[PATTERNS] | Glob pattern for the files to validate [default: ”**/*.surql”] |
Example usage
To perform validation on a SurrealQL local file, in a terminal run the surreal validate command with the required argument.
Using the command on its own will validate all the .surql files in the current directory.
surreal validate
user1.surql: OK
user2.surql: OK
user3.surql: OK
You can perform validation on a single file, regardless of extension.
surreal validate user.surql
surreal validate user.txt
You can also perform validation on multiple files using a single glob pattern:
surreal validate **/*.surql
Finally, you can also perform validation on multiple files using multiple paths/patterns:
surreal validate index.surql schemas/*.surql queries/*.surql
surreal validate *.(txt|surql)
If any files are invalid, the command will abort at this point and return an error.
surreal validate
user1.surql: OK
user2.surql: KO
Parse error: Unexpected token `an identifier`, expected Eof
--> [1:15]
|
1 | CREATE person SE name = "Billy";
| ^^
Command help
To see the help information and usage instructions, in a terminal run the surreal validate --help command without any further arguments. This command gives general information on the arguments, inputs, and additional options for the validate command.
surreal validate --help
The output of the above command:
Validate SurrealQL query files
Usage: surreal validate [OPTIONS] [PATTERNS]...
Arguments:
[PATTERNS]... Glob pattern for the files to validate [default: **/*.surql]
Options:
-h, --help Print help
Logging:
-l, --log <LOG> The logging level for the command-line tool [env: SURREAL_LOG=] [default: info] [possible
values: none, full, error, warn, info, debug, trace]
--log-format <LOG_FORMAT> The format for terminal log output [env: SURREAL_LOG_FORMAT=] [default: text] [possible
values: text, json]
--log-socket <LOG_SOCKET> Send logs to the specified host:port [env: SURREAL_LOG_SOCKET=]
--log-file-level <LOG_FILE_LEVEL> Override the logging level for file output [env: SURREAL_LOG_FILE_LEVEL=] [possible values:
none, full, error, warn, info, debug, trace]
--log-otel-level <LOG_OTEL_LEVEL> Override the logging level for OpenTelemetry output [env: SURREAL_LOG_OTEL_LEVEL=] [possible
values: none, full, error, warn, info, debug, trace]
--log-socket-level <LOG_SOCKET_LEVEL> Override the logging level for unix socket output [env: SURREAL_LOG_SOCKET_LEVEL=] [possible
values: none, full, error, warn, info, debug, trace]
--log-socket-format <LOG_SOCKET_FORMAT> The format for socket output [env: SURREAL_LOG_SOCKET_FORMAT=] [default: text] [possible
values: text, json]
--log-file-enabled Whether to enable log file output [env: SURREAL_LOG_FILE_ENABLED=]
--log-file-path <LOG_FILE_PATH> The directory where log files will be stored [env: SURREAL_LOG_FILE_PATH=] [default: logs]
--log-file-name <LOG_FILE_NAME> The name of the log file [env: SURREAL_LOG_FILE_NAME=] [default: surrealdb.log]
--log-file-format <LOG_FILE_FORMAT> The format for log file output [env: SURREAL_LOG_FILE_FORMAT=] [default: text] [possible
values: text, json]
--log-file-rotation <LOG_FILE_ROTATION> The log file rotation interval [env: SURREAL_LOG_FILE_ROTATION=] [default: daily] [possible
values: daily, hourly, never]