Specifying the schema mode
Two schema modes can be set to control the access to schema changes, Development
and Production
.
In Production mode, all properties for vertex and edge labels must be specified upfront before data is loaded.
In Development mode, data can be loaded without explicit schema definition.
The difference in schema modes is for the protection of data in a production environment, but flexibility in a development environment.
Also, full scans are allowed in Development mode, while queries must be more targeted in Production mode.
An example of a full scan is the query to count all vertices g.V().count()
.
See schema configuration for more information.
The default schema mode is Production
, the stricter mode.
If DSE is installed using an installer, this default schema mode may be different, depending on the option selected when installing.
A complete rundown of defaults is:
Install option | Default | Note |
---|---|---|
packages (DEB, YUM) |
Production |
Set in |
tarball |
Production |
Set in |
sandbox |
Development |
The schema mode is set in the dse.yaml
file for cluster-wide settings, but use a Schema API call to set the schema mode for a single graph.
A graph must be currently aliased to a particular graph to run the following commands.
If a change is desired cluster-wide, then the dse.yaml
file must be changed on each node in the cluster and each node must be restarted.
Procedure
-
Discover the current schema mode.
gremlin> schema.config().option('graph.schema_mode').get()
==>Development
-
Change the schema to
Production
.gremlin> schema.config().option('graph.schema_mode').set('Production')