Profile Configuration

Datamode uses YAML files to store and organize database connector and config information. Simply get started by creating a file named datamode.yml in one of three places:

  1. DATAMODE_CONFIG_DIR - An environment variable set that contains a directory path to any location you can access.
  2. The directory where you plan to execute your transforms.
  3. ~/.datamode/ - On OSX this is equivalent to your $HOME directory and on Windows this can be $HOME or $USERPROFILE if set. See Python’s documentation for more information.

Once you’re in the directory you wish to save your datamode.yml simply create the file:

touch datamode.yml

Use your favorite text editor to create the following structure (or copy and paste the below). Be sure to replace my_connection with how you want to reference this connection:

connections:
  my_connection:
    type:
    host:
    port:
    user:
    password:
    dbname:
    schema:
    default:

For example, let’s say I would like to create a connection configuration for a MySQL database in DEV. I may use the following setup:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
connections:
  mysql_dev:
    type: mysql
    host: internal-mysql.host.name.com
    port: 3306
    user: dev_user
    password: mypass!!
    dbname: science
    schema:
    default: True

You must define type, host, user, and dbname. The port will use the database specific default (3306 for MySQL, 5432 for Postgres).

You can also define default to be True if you have multiple connection profiles in your datamode.yml and do not want to specify it every time you run a Source or Sink.

The first time you run Datamode a file named datamode.info will be saved in either DATAMODE_CONFIG_DIR (if set) or ~.datamode/. This file contains an anonymized unique identifier and expiry that is used for analytics. You can disable sending anonymized analytics but you should not delete or alter this file. Altering the file may result in annoying warnings appearing in the logs.