Giter Site home page Giter Site logo

dbview's Introduction

DBView

This project contains a CLI to help our customers replicate their data on it own servers.

Build Details

Depencies

This projects uses the packages bellow to build:

make tools

And (for now) have a ruby gem dependency:

gem install fpm

osx related dependecies:

brew install rpm
brew install dpkg

More details here: http://timperrett.com/2014/03/23/enabling-rpmbuild-on-mac-osx/

Deploying new versions

./publish TAG

Remember to use a tag in the semantic versioning pattern.

How to use it

For now, this CLI only implements a possibility to install a new server and update the replication. Further versions are planned.

Installation

For the install process you need to input the dump file (sended by our support team), your customer id and the database credentials. For example:

$ dbview install -D ~/tmp/dbview_dump_customer_1329_20170131.pgbkp
  INFO[0000] Using config file: /Users/sebastian/.dbview.toml
  INFO[0000] INSTALLING DBVIEW AND DEPENDENCIES
  INFO[0000] Validating parameters...
  INFO[0000] STARTING UP
  INFO[0000] Creating the 'dbview' user
  INFO[0000] Creating the 'u1329' user
  INFO[0000] Fixing permissions
  INFO[0000] Updating the 'search_path'
  INFO[0000] Creating the 'umovme_dbview_db' database
  INFO[0000] Creating the necessary extensions
  INFO[0002] Restoring the dump file
  INFO[0004] Done.

A full detail of options are available with the --help option. For example:

$ dbview install --help
Install all dependencies of the dbview environment like,
users, permissions, database and restores the database dump.

The database dump are provided by the uMov.me support team.

Please contact us with you have any trouble.

Usage:
  dbview install [flags]

Flags:
      --dump-file string   Database dump file
      --force-cleanup      Remove the database and user before starts (DANGER)

Global Flags:
      --config string                           config file (default is $HOME/.dbview.yaml)
      --customer int                            Your customer ID
      --help                                    Show this help message
  -d, --local-database.database string          Local maintenance database. Used for administrative tasks. (default "postgres")
  -h, --local-database.host string              Local Database host (default "127.0.0.1")
  -P, --local-database.password string          Local Database password
  -p, --local-database.port string              Local Database password
      --local-database.ssl string               Local SSL connection: 'require', 'verify-full', 'verify-ca', and 'disable' supported (default "disable")
      --local-database.target_database string   Local target database. (default "umovme_dbview_db")
      --local-database.target_username string   Local target username. (default "dbview")
  -U, --local-database.username string          Local Database user (default "postgres")

Updating the replication

For the replicate process you need configure the config.toml adjuting the [remote-database] section then run:

$ dbview replicate
  INFO[0000] Using config file: /Users/sebastian/.dbview.toml
  INFO[0000] Updating Replication Data...
  INFO[0001] Done.

IMPORTANT: the user and password credentials are provided by our support team.

A full detail of options are available with the --help option. For example:

$ dbview replicate --help
Runs the replication functions and updates the target database at the latest version

Usage:
  dbview replicate [flags]

Flags:
      --daemon                            Run as daemon
  -l, --options.row_limit int32           row limit of each replication action (default 100)
      --refresh-interval duration         Refresh interval for daemon mode (default 30s)
      --remote-database.database string   Remote Database name (default "prod_umov_dbview")
      --remote-database.host string       Remote Database Host (default "dbview.umov.me")
      --remote-database.password string   Remote Database password
      --remote-database.port string       Remote Database Port (default "9999")
      --remote-database.ssl string        Remote SSL connection: 'require', 'verify-full', 'verify-ca', and 'disable' supported (default "disable")
      --remote-database.username string   Remote Database User (default "postgres")

Global Flags:
      --config string                    config file (default is $HOME/.dbview.yaml)
      --customer int                     Your customer ID
      --debug                            Show debug messages
      --help                             Show this help message
  -d, --local-database.database string   Local maintenance database. Used for administrative tasks. (default "postgres")
  -h, --local-database.host string       Local Database Host (default "127.0.0.1")
  -P, --local-database.password string   Local Database password
  -p, --local-database.port string       Local Database Port
      --local-database.ssl string        Local SSL connection: 'require', 'verify-full', 'verify-ca', and 'disable' supported (default "disable")
  -U, --local-database.username string   Local Database User (default "postgres")
      --pgsql-bin string                 PostgreSQL binaries PATH

SystemD Service

With the --daemon option its possible start it as a systemD service. Create a file /usr/lib/systemd/system/dbview.service with the content bellow:

[Unit]
Description=DBView Replication
After=network.target

[Service]
Environment=CMD_OPTIONS=--daemon --duration 35s
Environment=CONFIG_FILE=/opt/dbview/config.toml
Type=simple
User=root
Group=root
ExecStart="/opt/dbview/dbview" replicate --config "${CONFIG_FILE}" ${CMD_OPTIONS}

[Install]
WantedBy=multi-user.target

Update CMD_DIR, CMD_OPTIONS, and CONFIG_FILE for different PATH and configurations.

Then reload systemd configurations to use your service:

systemctl daemon-reload

Getting support

If you need any help, contact us at http://www.umov.me/suporte/.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.