Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.
08-22-2018 07:44 PM
The following can be used to extract index defintions and constraint defintions from an existing database and the resultant
output can be played back on another Neo4j database.
To extract Cypher CREATE INDEX
statements run:
CALL db.indexes() YIELD description
RETURN 'CREATE ' + description
To extract Cypher CREATE CONSTRAINT
statements run:
CALL db.constraints() YIELD description
RETURN 'CREATE ' + description
03-31-2020 01:59 AM
Is there a way to also get the full text indexes that were created?
ie if i had run
CALL db.index.fulltext.createNodeIndex("titlesAndDescriptions",["Movie", "Book"],["title", "description", "review"])
the above queries seem to miss these full text indexes
03-31-2020 06:32 AM
in 4.0.x forward there is now call db.schemaStatements();
which will will produce a createStatement
and dropStatement
for all indexes and include the index provider. For example and when using bin/cypher-shell
and with 4.0.3
@neo4j> create index movieTitles for (n:Movies) on (n.title);
0 rows available after 111 ms, consumed after another 0 ms
Added 1 indexes
and then
@neo4j> call db.schemaStatements() yield dropStatement;
+----------------------------+
| dropStatement |
+----------------------------+
| "DROP INDEX `movieTitles`" |
+----------------------------+
and
@neo4j> call db.schemaStatements() yield createStatement;
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| createStatement |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| "CALL db.createIndex('movieTitles', ['Movies'], ['title'], 'native-btree-1.0', {`spatial.cartesian-3d.min`: [-1000000.0, -1000000.0, -1000000.0],`spatial.cartesian.min`: [-1000000.0, -1000000.0],`spatial.wgs-84.min`: [-180.0, -90.0],`spatial.cartesian-3d.max`: [1000000.0, 1000000.0, 1000000.0],`spatial.cartesian.max`: [1000000.0, 1000000.0],`spatial.wgs-84-3d.min`: [-180.0, -90.0, -1000000.0],`spatial.wgs-84-3d.max`: [180.0, 90.0, 1000000.0],`spatial.wgs-84.max`: [180.0, 90.0]})" |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row available after 2 ms, consumed after another 2 ms
and so one could use the dropStatement and createStatements so as to replay to rebuild said indexes/constraints;
All the sessions of the conference are now available online