!NOTE: BEFORE YOU START
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: OKYou can perform validation on a single file, regardless of extension.
surreal validate user.surql
surreal validate user.txtYou can also perform validation on multiple files using a single glob pattern:
# equivalent to "surreal validate"
surreal validate **/*.surqlFinally, 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";
| ^^ Validating input from stdin
In addition to files, this command can also be used on the terminal with the --stdin flag to validate input from stdin.
An example of a valid query:
$ echo "SELECT * FROM example;" | surreal validate --stdin
<stdin>: OKAn example of an invalid query:
$ echo "CREATE WHERE value = ''" | cargo run -- validate --stdin
<stdin>: FAIL
Parse error: Unexpected token `VALUE`, expected Eof
--> [1:14]
|
1 | CREATE WHERE value = ''
| ^^^^^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 --helpThe 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:
--stdin Read query from standard input
-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]