rdm-import

Data Import Utility

Synopsis

rdm-import [OPTION]… db-uri

Description

rdm-import is a command-line utility that creates a RaimaDB database from a backup created by rdm-export or another data source in SQL, CSV or XML file format.

Options

Short options can be combined into one string starting with a single '-'. Mandatory arguments to long options are mandatory for short options too. Long option arguments can also be specified in a separate argument.

-h, --help Display this usage information
--version Display the version information
-q, --quiet Quiet mode. No information will be displayed
--key=key Specify the encryption key for the database ([algorithm:]passcode). The valid algorithms are xor, aes128, aes192 and aes256. The AES algorithms are only available for packages that have strong encryption support. If an algorithm is not specified, the default is aes128 for strong encryption packages and xor otherwise.
--docroot=path Document root to use instead of the current working directory. The environment variable RDM_DOCROOT can also be used. (See Document Root (docroot))
-c, --commit=count Commit per this number of rows
--dateformat=format Date format in the import file
--timeformat=format Time format in the import file
-f, --force Overwrite an existing export database
-L, --locale=locale The string collation locale the database will use. (See locale)
--alter Existing database will be altered for DDL
-o, --output=db-uri Name of the database to be created
-t, --table=table_name Name of the table to import data into
--triggers-off Turn off trigger execution on existing database
filename Name of the file to be imported. Filename must have one of the following file extensions: sql, csv or xml. For CSV and XML import files, filename is assumed to be in dbname_tablename.[csv|xml] format where dbname is the name of the target database and table_name is the name of the target table, unless--output is used to specify the database name and/or--table is used to specify the table name. For an SQL import file, filename is assumed to be in dbname.sql format where dbname is the name of the target database, unless--outputis used to specify the database name.

Comments

rdm-import imports data stored n files in comma-separated (CSV), XML or SQL format into an existing database. If the --force option is specified, all the existing data of the database will be removed before the new data are imported.

Each CSV or XML file must contain data for one table only. If the database name is specified with the --output option, the filename will be interpreted as the table name. Otherwise, the filename should be databasename_tablename[.csv|.xml]. Each SQL import file may contain data for multiple tables since each INSERT statement includes the name of the target table.

The SQL import file may include a schema definition, stored procedures and triggers. If it does, rdm-import attempts to create a new database and stored procedures / triggers based on the definition before processing the INSERT statements. If the remote TFS location is specified with the --output option, the database will be created on that TFS.

If the --force option is specified without --alter, an existing database will be dropped. This action is irreversible, even if the subsequent operation fails.

When importing the data into a new database using rdm-import, the user must make sure they process the CSV / XML files in the correct order. For instance, if Table A has a foreign key that references Table B, then the file that contains data for B must be imported before the file for A.

Importing Stored Procedures and Triggers

rdm-import included in the RaimaDB 16.0 Enterprise package provides the capability to parse the stored procedure and trigger statements included in the SQL import file and report any syntax errors. This feature may be useful if there is a need to create a new SQL import file with your own stored procedure and/or trigger definitions or edit existing stored procedure and/or trigger definitions.

rdm-import included in the RaimaDB 16.0 Core Cursor package does not have this capability built-in. It will simply read in the stored procedure/trigger definitions and store them in the target database.

Usage Examples

The usage examples assume that P.sql contains the following table and procedure definitions:

CREATE TABLE p0
(
    a integer
);

CREATE TABLE p1
(
    b smallint
);
COMMIT;

INSERT INTO p0 VALUES 1;
INSERT INTO p1 VALUES 11;

CREATE TRIGGER p.trigger_insert_after_p0
        AFTER INSERT ON p0
    REFERENCING NEW ROW AS new_p0
    FOR EACH ROW
BEGIN ATOMIC
    INSERT INTO p1 VALUES new_p0.a + 10;
END;
;
COMMIT;

Creating and importing a RaimaDB database

rdm-import can be used to create a new RaimaDB database and populate it. Execute rdm-import as follows.

$ rdm-import P.sql

The "--output" command-line option can be used to create and populate a database on a remote TFS as follows.

$ rdm-import --output tfs//localhost/REMOTE_P P.sql

A new database will be created under the TFS running on localhost.

This utility is uses the rdm_dbImport() function to export data.