rowsql

module
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: Jan 16, 2026 License: MIT

README

RowSQL

Go Version Made with React

A lightweight, cross-platform database management tool for PostgreSQL, MySQL, and SQLite with a modern web-based interface.

RowSQL provides an intuitive web UI to manage your databases without the complexity of heavy desktop applications. Perfect for developers who need quick access to their data with powerful filtering, editing, and query tracking capabilities.

Demo

Features

  • Represent your sql data in a user-friendly UI.
  • Perform various SQL operations – Easily insert, update, or delete records using intuitive web forms.
  • Track query history – Maintain a "Recent Activity" log to see every change made to your database using RowSQL.
  • Inspect Table Structures
  • Shows rows the way you want them - you choose the order, filter

Installation

curl -fsSL https://raw.githubusercontent.com/biisal/rowsql/refs/heads/main/install | bash

How to Use?

  1. Create a .env file in your home directory's rowsql folder:

    • Unix: ~/.rowsql/.env
    • Windows: %USERPROFILE%\.rowsql\.env
  2. .env file should contain the following

DBSTRING=my.db
PORT=8000
LOG_FILE_PATH="~/.rowsql/rowsql.log"
  1. run rowsql
  2. open http://127.0.0.1:8000 in your browser

.env Variables Explanation

DBSTRING is the connection string to your database.

  • For SQLite, this is the path to your .db file.
  • For PostgreSQL/MySQL, this is the PostgreSQL/MySQL connection string.
    • DBSTRING=postgres://admin:admin@127.0.0.1:5432/admin_db
  • RowSQL automatically detects the database type from the connection string.

PORT

  • The port number that RowSQL listens on. Using that port number, you can access RowSQL's web interface.

LOG_FILE_PATH

  • The file path where RowSQL writes its Error logs.

Development

Prerequisites

  • Go 1.25.3 or higher
  • Node.js and pnpm (for building the frontend)
  • Air (optional, for hot-reloading during development)

Building from Source

  1. Clone the repository:

    git clone https://github.com/biisal/rowsql.git
    cd rowsql
    
  2. Install frontend dependencies:

    cd frontend && pnpm install && cd ..
    
  3. Build the project:

    make build
    

    This will build the frontend and compile the Go binary to bin/rowsql.

  4. Run the binary:

    ./bin/rowsql
    

Development Mode

For development with hot-reloading:

make dev

This runs both the frontend dev server and backend with Air for automatic reloading.

Alternatively, run them separately:

  • Frontend only: make frontend-dev
  • Backend only: make backend-dev

Project Structure

rowsql/
├── cmd/server/          # Application entry point
├── internal/            # Internal packages
│   ├── database/        # Database connection & type handling
│   ├── router/          # HTTP routes & handlers
│   ├── service/         # Business logic
│   └── logger/          # Logging utilities
├── frontend/            # React + Vite frontend
├── configs/             # Configuration management
└── resources/           # Static resources

Performance Considerations

Database Size Recommendations

  • SQLite: Works well with databases up to several GB. Performance may degrade with very large tables (100M+ rows).
  • PostgreSQL/MySQL: Suitable for databases of any size, but consider the following:
    • Large result sets (>10,000 rows) are paginated automatically
    • Complex queries on large tables may take time; use filters to narrow results

Best Practices

  1. Index your tables: Ensure frequently queried columns have appropriate indexes for faster data retrieval.

  2. Limit result sets: When working with large tables, use the built-in filtering and sorting features to limit the data loaded.

  3. Connection pooling: RowSQL uses efficient connection pooling, but avoid running multiple instances against the same database unnecessarily.

  4. Memory usage: RowSQL loads data on-demand. For very large result sets, pagination prevents excessive memory consumption.

  5. Network latency: For remote databases (PostgreSQL/MySQL), ensure good network connectivity for optimal performance.

Contributing

Contributions are welcome! Here's how you can help:

  1. Report bugs: Open an issue describing the bug and steps to reproduce it.
  2. Suggest features: Share your ideas for new features or improvements.
  3. Submit pull requests: Fork the repo, make your changes, and submit a PR.

Please ensure your code follows the existing style and includes appropriate tests where applicable.

License

This project is licensed under the MIT License. See the LICENSE file for details.


RowSQL Logo

Directories

Path Synopsis
cmd
server command
Package configs contains the configuration for the application
Package configs contains the configuration for the application
Package frontend is the frontend of the application
Package frontend is the frontend of the application
internal
apperr
Package apperr contains error constants and functions for the application.
Package apperr contains error constants and functions for the application.
database
Package database provides utilities for connecting to a PostgreSQL database.
Package database provides utilities for connecting to a PostgreSQL database.
database/db-errors
Package dberrors contains errors related to database operations.
Package dberrors contains errors related to database operations.
database/models
Package models conatains the models of database qureies and forms
Package models conatains the models of database qureies and forms
database/queries
Package queries provides a set of SQL queries based on the driver
Package queries provides a set of SQL queries based on the driver
database/repo
Package repo contains the repository for the database
Package repo contains the repository for the database
logger
Package logger provides functions for logging messages.
Package logger provides functions for logging messages.
response
Package response provides functions for creating JSON responses.
Package response provides functions for creating JSON responses.
router
Package router contains the handler for the database
Package router contains the handler for the database
service
Package service provides the service layer for the application.
Package service provides the service layer for the application.
utils
Package utils provides utility functions for the rowsql application.
Package utils provides utility functions for the rowsql application.

Jump to

Keyboard shortcuts

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