Exporting the catalog
The EXPORT_CATALOG function generates a SQL script that copies a database design to another cluster. This script replicates the physical schema design of the source database. For example:
=> SELECT EXPORT_CATALOG (
'/home/dbadmin/xtest/sql_cat_tables.sql',
'TABLES');
EXPORT_CATALOG
-------------------------------------
Catalog data exported successfully
(1 row)
The last argument specifies what to export:
-
TABLES: Tables, schemas, and table-dependent objects: constraints, and access policies.
-
DESIGN (default): All catalog objects.
-
DIRECTED_QUERIES: All directed queries that are stored in the catalog. For details, see Managing directed queries.
Use the DESIGN scope to export all design elements of a source database in order of their dependencies. This scope exports all catalog objects, including schemas, tables, constraints, projections, views, access policies, stored procedures, and data loaders:
=> SELECT EXPORT_CATALOG(
'/home/dbadmin/xtest/sql_cat_design.sql',
'DESIGN' );
EXPORT_CATALOG
-------------------------------------
Catalog data exported successfully
(1 row)
This function can generate the following types of statements:
- CREATE SCHEMA
- CREATE TABLE
- CREATE PROJECTION
- CREATE VIEW
- CREATE SEQUENCE
- CREATE ACCESS POLICY
- CREATE PROCEDURE (stored)
- CREATE SCHEDULE
- CREATE TRIGGER
- CREATE DATA LOADER
The SQL script:
-
Only includes objects to which the user has access.
-
Orders CREATE statements based on object dependencies so they can be recreated in the correct sequence. For example, if a table is in a non-public schema, the required CREATE SCHEMA statement precedes the CREATE TABLE statement. Similarly, a table's CREATE ACCESS POLICY statement follows the table's CREATE TABLE statement.
-
If possible, creates projections with a KSAFE clause, if any, otherwise with an OFFSET clause.
Projection considerations
If a projection to export was created with no ORDER BY clause, the SQL script reflects the default behavior for projections. Vertica implicitly creates projections using a sort order based on the SELECT columns in the projection definition.
The EXPORT_CATALOG script is portable if all projections are created using UNSEGMENTED ALL NODES or SEGMENTED ALL NODES.