DbSchema ScyllaDB ER Diagram Designer

DbSchema is a ScyllaDB ER diagram database designer and query tool. Using DbSchema, you can design and document ScyllaDB databases while connected to the database server or without a connection.

Next, you can share the design with the team using Git. The design model loaded in DbSchema can be compared with the database, synchronization scripts can be generated, and the schema can be deployed to any database server.

DbSchema Database Designer

Download DbSchema

How to Connect to ScyllaDB Database

  1. Access the Connection Dialog

    Choose "Connect to the database" or "New Model Connected to the Database" will let you select your database and open the Connection Dialog.

    DbSchema automatically downloads the JDBC driver to connect to your database.

  2. Configure the Connection
  3. In the Connection Dialog window, select the JDBC URL you want to connect with. If your database is running in the cloud, choose Edit Manually and insert the JDBC URL from the cloud console.

    Enter the host name, the authentication details, select your database as described in the Connection Dialog page.

  4. Troubleshoot Firewall Issues
  5. If you encounter connection issues, it may be due to firewall settings. Read how to enable Firewall Connections.
Remember to enable Windows Firewalls Firewalls & anti-viruses may block database connections.

How to Configure the ScyllaDB JDBC URL

DbSchema connects to ScyllaDB using its own JDBC driver which calls the native ScyllaDB driver. The DbSchema driver is open source and can be found at /jdbc-driver/ScyllaDB.html.

The default DbSchema connection dialog shows an option to connect only to a single host. To connect to multiple hosts use the 'JDBC URL' tab and edit a string like here:

jdbc:scylladb://host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[keyspace];[dataCenter][&options]]

Find the DataCenter using 'nodetool status' or 'nodetool -h ::FFFF:127.0.0.1 status'.

This will be translate an URL like jdbc:scylladb://192.168.0.1:9042/mykeyspace into:

Cluster cluster = Cluster.builder().addContactPoint("192.168.0.1").withPort(9042).build();
Session session = cluster.connect("mykeyspace");

How to configure the ScyllaDB JDBC URL and connect to the database

Connect using SSL

Edit the DbSchema.vmoptions file (in the DbSchema installation folder or ./DbSchema.app/Contents/vmoptions.txt on Mac OS) and add this parameters:
-Djavax.net.ssl.trustStore=/path/to/client.truststore
-Djavax.net.ssl.trustStorePassword=password123
# If you're using client authentication:
-Djavax.net.ssl.keyStore=/path/to/client.keystore
-Djavax.net.ssl.keyStorePassword=password123

How to Enable Remote Connections for ScyllaDB on Windows

To enable remote connections you will have to edit the cassandra.yaml file from C:\Program Files\DataStax Community\apache-cassandra\conf

How to edit ScyllaDB configuration file and allow remote connections
set the
  • start_rpc: true
  • rpc_address: your_ip
  • cdc_raw_directory: "C:/Program Files/DataStax-DDC/data/cdc_raw"
The 'cdc_raw_directory' does not exist in the default configuration file. ScyllaDB server 3.9 didn't start without adding it. Look in DataStax-DCC/logs for errors.
Setup ScyllaDB rpc_address
Go to -> Control Panel\System and Security\Administrative Tools -> Services -> Restart service. DataStax DDC Server 3.9.0 .
How to restart the DataStax service on Windows
ScyllaDB databases talk to each other using a different protocol on a different port. These two can not be the same and gives us some extra configuration. ScyllaDB Default ports:
- 9042 ScyllaDB client port.
- 9160 ScyllaDB client port (Thrift).

How to Install ScyllaDB on Windows

ScyllaDB can be installed on Windows from https://academy.datastax.com/planet-cassandra//cassandra. After installation go to installation folder: C:\Program Files\DataStax Community\apache-cassandra\conf and enable remote connections as in the previous chapter.

From Windows menu you can start DataStax Dev Center and connect to the installed ScyllaDB:
How to install ScyllaDB on Windows
To execute a command select first a connection in the top menu.

CREATE KEYSPACE sample
WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy',
'datacenter1' : 3 } AND DURABLE_WRITES = false;

CREATE TABLE sample.table1 ( id int primary key, name text);

####################

CREATE TYPE sample.flagtype (data map<text,text>,working text);

CREATE TABLE sample.table1a (abc text,
hello text,
flag frozen<flagtype>,
PRIMARY KEY (abc));

INSERT INTO sample.table1a JSON '{"abc":"abc", "hello":"world", "flag":{"data":{"hi":"cassandra"}, "working":"no"}}';