Parse database information from environment variables.
cargo install --path .{
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 ];
})
];
};
};
}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"db show <db_name>db sqlsOutput:
[
{
"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")Generate shell completion scripts:
db --generate <bash|zsh|fish> > shell init script