mypgweb

command module
v0.4.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 2, 2014 License: MIT Imports: 20 Imported by: 0

README

pgweb

Web-based PostgreSQL database browser written in Go.

Build Status

Overview

This is a web-based browser for PostgreSQL database server. Its written in Go and works on Mac OSX, Linux and Windows machines. Main idea behind using Go for the backend is to utilize language's ability for cross-compile source code for multiple platforms. This project is an attempt to create a very simple and portable application to work with PostgreSQL databases.

Features:

  • Connect to local or remote server
  • Browse tables and table rows
  • Get table details: structure, size, indices, row count
  • Execute SQL query and run analyze on it
  • Export query results to CSV
  • View query history

Installation

Please visit Github Releases to download a precompiled binary for your operating system.

Currently supported:

  • Mac OSX 64bit
  • Linux 32/64bit
  • Windows 32/64bit

Supported PostgreSQL versions:

  • 9.1
  • 9.2
  • 9.3

Older versions of PostgreSQL might also work but this project is not tested on 8.x branches.

Run on Heroku

Deploy

Usage

Start server:

pgweb

You can also provide connection flags:

pgweb --host localhost --user myuser --db mydb

Connection URL scheme is also supported:

pgweb --url postgres://user:password@host:port/database?sslmode=[mode]

It works great with Heroku Postgres if you need to troubleshoot production database or simply run a few queries.

CLI options
Usage:
  pgweb [OPTIONS]

Application Options:
  -v, --version    Print version
  -d, --debug      Enable debugging mode (false)
  -s, --skip-open  Skip browser open on start
      --url=       Database connection string
      --host=      Server hostname or IP (localhost)
      --port=      Server port (5432)
      --user=      Database user (postgres)
      --pass=      Password for user
      --db=        Database name (postgres)
      --ssl=       SSL option (disable)
      --bind=      HTTP server host (localhost)
      --listen=    HTTP server listen port (8080)
      --auth-user= HTTP basic auth user
      --auth-pass= HTTP basic auth password

Build from source

Go 1.3+ is required. You can install Go with homebrew:

brew install go

To compile source code run the following command:

make setup
make dev

This will produce pgweb binary in the current directory.

There's also a task to compile binaries for other operating systems:

make build

Under the hood it uses gox. Compiled binaries will be stored into ./bin directory.

Use in Docker

Build the image:

docker build -t pgweb .

Start container:

docker run [OPTIONS of docker] pgweb [OPTIONS of pgweb]
Example

Run postgresql container:

docker run -d \
           --name="postgresql" \
           -p 5432:5432 \     
           -e USER="testuser" \
           -e DB="testdb" \
           -e PASS="test123" \
           paintedfox/postgresql

Run pgweb container:

docker run -d \
           -p 8080:8080 pgweb \
           --url postgres://testuser:test123@your-ip:5432/testdb \
           --bind 0.0.0.0

Then open http://your-ip:8082 in your browser.

Contributing

  • Fork repository
  • Create a feature or bugfix branch
  • Open a new pull request
  • Use github issues for any questions

Contact

License

The MIT License (MIT)

Copyright (c) 2014 Dan Sosedoff, dan.sosedoff@gmail.com

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Godeps
_workspace/src/github.com/jessevdk/go-flags
Package flags provides an extensive command line option parser.
Package flags provides an extensive command line option parser.
_workspace/src/github.com/jmoiron/sqlx
Package sqlx provides general purpose extensions to database/sql.
Package sqlx provides general purpose extensions to database/sql.
_workspace/src/github.com/jmoiron/sqlx/reflectx
Package reflect implements extensions to the standard reflect lib suitable for implementing marshaling and unmarshaling packages.
Package reflect implements extensions to the standard reflect lib suitable for implementing marshaling and unmarshaling packages.
_workspace/src/github.com/julienschmidt/httprouter
Package httprouter is a trie based high performance HTTP request router.
Package httprouter is a trie based high performance HTTP request router.
_workspace/src/github.com/lib/pq
Package pq is a pure Go Postgres driver for the database/sql package.
Package pq is a pure Go Postgres driver for the database/sql package.
_workspace/src/github.com/lib/pq/listen_example
Below you will find a self-contained Go program which uses the LISTEN / NOTIFY mechanism to avoid polling the database while waiting for more work to arrive.
Below you will find a self-contained Go program which uses the LISTEN / NOTIFY mechanism to avoid polling the database while waiting for more work to arrive.
_workspace/src/github.com/lib/pq/oid
Package oid contains OID constants as defined by the Postgres server.
Package oid contains OID constants as defined by the Postgres server.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL