this post was submitted on 26 Feb 2024
20 points (100.0% liked)

Nix / NixOS

1753 readers
16 users here now

Main links

Videos

founded 1 year ago
MODERATORS
 

I just switched one of my systems over to NixOS from Arch and so far it seems interesting. One question I had is regarding the nix-shell. So I get the basic concept of it and that it allows creating a shell that has packages installed with that shell making ideal for dev environments. I've even seen talks where the suggest nix-shells over docker/podman, my question is how is persistent data (like databases) handled?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 4 points 8 months ago (1 children)

In general Nix doesn't manage persistent data. It will be stored in whatever location the tool writes it to.

nix-shell is a very simple program. Basically it downloads/builds the package you have configured, then sets up environment variables like PATH to include that package. It would be similar to downloading a pre-built tarball run running ./foo inside of that.

For most built-in modules this will be /var/lib/foo for a service foo. If you run nix-shell the service will write data wherever it would normally write data on any other distribution.

[–] [email protected] 2 points 8 months ago (1 children)

Okay, that's good to know. I just wanted to make sure that if I had something like MariaDB or Postgres get installed with nix-shell that I wouldn't lose everything thus having to set everything back up next time I start the shell again.

[–] [email protected] 3 points 8 months ago

No, you won't lose anything. However do be aware that unless you specifically configure different data directories using the same DBMS in multiple projects will use the same underlying data files.

Typically this won't be a problem, and you can just create different logical databases if necessary.