Skip to content

mikojs/db

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DB

Parse database information from environment variables.

Installation

Cargo

cargo install --path .

Nix

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
    miko-db.url = "github:mikojs/db";
  };

  outputs = { nixpkgs, miko-db, ... }: {
    nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {
      ...
      modules = [
        ({ pkgs, ... }: {
          nixpkgs.overlays = [ miko-db.overlays.default ];
          environment.systemPackages = [ pkgs.miko-db ];
        })
      ];
    };
  };
}

Usage

Set environment variables for your databases:

export DB_<DB_NAME>_URL=<database_url>
export DB_<DB_NAME>_TYPE=<postgresql|sqlite3>
export DB_<DB_NAME>_DESCRIPTION=<description>

# Example
export DB_PG_URL="postgresql://postgres:postgres@localhost/postgres"
export DB_PG_TYPE="postgresql"
export DB_PG_DESCRIPTION="Default database"

export DB_SQLITE_URL="file:foo.db"
export DB_SQLITE_TYPE="sqlite3"

Show database URL

db show <db_name>

Generate sqls config

db sqls

Output:

[
  {
    "driver": "postgresql",
    "dataSourceName": "postgresql://postgres:postgres@localhost/postgres"
  }
]

Add this to your nvim config:

local db_sqls_command = io.popen("db sqls")
local connections = vim.json.decode(db_sqls_command:read("*a"))

db_sqls_command:close()
vim.lsp.config("sqls", {
  capabilities = capabilities,
  settings = {
    sqls = {
      connections = connections,
    },
  },
})
vim.lsp.enable("sqls")

Shell Completion

Generate shell completion scripts:

db --generate <bash|zsh|fish> > shell init script

About

Parse database information from environment variables.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors