How to run cql files (.cql) from within cqlsh?

Use the SOURCE

http://www.datastax.com/documentation/cql/3.1/cql/cql_reference/source_r.html

You can use -f option as well to execute commands from file

http://www.datastax.com/documentation/cql/3.1/cql/cql_reference/cqlsh.html


Assuming your filename is "tables.cql" and it is placed as: /files/tables.cql;

A - Locally

cqlsh -f /files/tables.cql

B - Connecting To A Docker Container Running Cassandra

Assuming the name of the Docker container that which running Cassandra is "cas" (keep in mind that you can also use the hash id of the docker container if there is no name assigned to it);

docker exec -it cas cqlsh -f /files/tables.cql

As stated on other answers, -u and -p options can be added in order to use the username/password combinations.


Assuming that the path of the file with the CQL commands is /mydir/myfile.cql, there are two ways:

If you are not logged in to cqlsh:

cqlsh -u 'my_username' -p 'my_password' -f /mydir/myfile.cql

If you are logged in to cqlsh:

SOURCE '/mydir/myfile.cql'

Notice the single quotation marks. The shorthand notation for $HOME (for example, '~/mydir/myfile.cql') is also supported.

Both ways also work with relative paths (to the current directory).