Litestream
This Elixir library wraps Litestream so that SQLite databases can be easily backed up
Install / Use
/learn @akoutmos/LitestreamREADME
Contents
Installation
Available in Hex, the package can be installed by adding litestream to your list of
dependencies in mix.exs:
def deps do
[
{:litestream, "~> 0.5.0"}
]
end
Documentation can be found at hexdocs.pm/litestream.
Supporting Litestream
If you rely on this library to backup your SQLite databases, it would much appreciated if you can give back to the project in order to help ensure its continued development.
Checkout my GitHub Sponsorship page if you want to help out!
Gold Sponsors
<a href="https://github.com/sponsors/akoutmos/sponsorships?sponsor=akoutmos&tier_id=58083"> <img align="center" height="175" src="guides/images/your_logo_here.png" alt="Support the project"> </a>Silver Sponsors
<a href="https://github.com/sponsors/akoutmos/sponsorships?sponsor=akoutmos&tier_id=58082"> <img align="center" height="150" src="guides/images/your_logo_here.png" alt="Support the project"> </a>Bronze Sponsors
<a href="https://github.com/sponsors/akoutmos/sponsorships?sponsor=akoutmos&tier_id=17615"> <img align="center" height="125" src="guides/images/your_logo_here.png" alt="Support the project"> </a>Setting Up Litestream
After adding {:litestream, "~> 0.4.0"} in your mix.exs file and running mix deps.get, open your application.ex
file and add the following to your supervision tree:
@impl true
def start(_type, _args) do
children = [
# Start the Ecto repository
LitescaleTest.Repo,
{Litestream, litestream_config()},
...
]
opts = [strategy: :one_for_one, name: MyApp.Supervisor]
Supervisor.start_link(children, opts)
end
defp litestream_config do
Application.get_env(:my_app, Litestream)
end
In your runtime.exs:
config :my_app, Litestream,
repo: MyApp.Repo,
strategy: %Litestream.Strategy.LocalFile{
backup_path: "/path/to/backup/folder"
}
With those in place, you should be all set to go! As soon as your application starts, your database will be automatically synced with your remote destination.
Attribution
- The logo for the project is an edited version of an SVG image from the unDraw project
- The Litestream library that this library wraps Litestream
