litestream 0.1.0-arm64-linux → 0.3.0-arm64-linux
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +107 -12
- data/exe/litestream +1 -1
- data/lib/litestream/commands.rb +52 -43
- data/lib/litestream/generators/litestream/install_generator.rb +32 -0
- data/lib/litestream/generators/litestream/templates/litestream.rb +38 -0
- data/lib/litestream/generators/litestream/templates/litestream.yml +10 -0
- data/lib/litestream/railtie.rb +17 -0
- data/lib/litestream/upstream.rb +1 -1
- data/lib/litestream/version.rb +1 -1
- data/lib/litestream.rb +21 -4
- data/lib/tasks/litestream_tasks.rake +21 -0
- metadata +36 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 615275a1ebff0f576318f24d3b3e0b000ad0a47cc88d6cc815bcac56f51ab262
|
4
|
+
data.tar.gz: bce44633cb4265bbd095ae3c443cc359488892b409be2d63cf345120c1e3d194
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: efcd04209fd766ce805531f3b9726d47fdd208f3ff79565a580badb2324ee3e92388c5bb268f011d3c44c9c024b3d38e00cf621f9be4002249dd937c4a1950b7
|
7
|
+
data.tar.gz: b5ff560723a35146c77f6b5db585b8e81e491609a0db6b72ad48229807b5285988590230ea0e8306443a07d7c52b1619c889120fa2dc5049cb94f8b04901781d
|
data/README.md
CHANGED
@@ -1,34 +1,129 @@
|
|
1
|
-
#
|
1
|
+
# litestream-ruby
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/litestream`. To experiment with that code, run `bin/console` for an interactive prompt.
|
3
|
+
[Litestream](https://litestream.io/) is a standalone streaming replication tool for SQLite. This gem provides a Ruby interface to Litestream.
|
6
4
|
|
7
5
|
## Installation
|
8
6
|
|
9
|
-
TODO: Replace `UPDATE_WITH_YOUR_GEM_NAME_PRIOR_TO_RELEASE_TO_RUBYGEMS_ORG` with your gem name right after releasing it to RubyGems.org. Please do not do it earlier due to security reasons. Alternatively, replace this section with instructions to install your gem from git if you don't plan to release to RubyGems.org.
|
10
|
-
|
11
7
|
Install the gem and add to the application's Gemfile by executing:
|
12
8
|
|
13
|
-
$ bundle add
|
9
|
+
$ bundle add litestream
|
14
10
|
|
15
11
|
If bundler is not being used to manage dependencies, install the gem by executing:
|
16
12
|
|
17
|
-
$ gem install
|
13
|
+
$ gem install litestream
|
14
|
+
|
15
|
+
After installing the gem, run the installer:
|
16
|
+
|
17
|
+
$ rails generate litestream:install
|
18
|
+
|
19
|
+
The installer will create a configuration file at `config/litestream.yml`, an initializer file for configuring the gem at `config/initializers/litestream.rb`, as well as a `Procfile` so that you can run the Litestream replication process alongside your Rails application in production.
|
20
|
+
|
21
|
+
This gem wraps the standalone executable version of the [Litestream](https://litestream.io/install/source/) utility. These executables are platform specific, so there are actually separate underlying gems per platform, but the correct gem will automatically be picked for your platform. Litestream itself doesn't support Windows, so this gem doesn't either.
|
22
|
+
|
23
|
+
Supported platforms are:
|
24
|
+
|
25
|
+
* arm64-darwin (macos-arm64)
|
26
|
+
* x86_64-darwin (macos-x64)
|
27
|
+
* arm64-linux (linux-arm64)
|
28
|
+
* x86_64-linux (linux-x64)
|
29
|
+
|
30
|
+
### Using a local installation of `litestream`
|
31
|
+
|
32
|
+
If you are not able to use the vendored standalone executables (for example, if you're on an unsupported platform), you can use a local installation of the `litestream` executable by setting an environment variable named `LITESTREAM_INSTALL_DIR` to the directory containing the executable.
|
33
|
+
|
34
|
+
For example, if you've installed `litestream` so that the executable is found at `/usr/local/bin/litestream`, then you should set your environment variable like so:
|
35
|
+
|
36
|
+
``` sh
|
37
|
+
LITESTREAM_INSTALL_DIR=/usr/local/bin
|
38
|
+
```
|
39
|
+
|
40
|
+
This also works with relative paths. If you've installed into your app's directory at `./.bin/litestream`:
|
41
|
+
|
42
|
+
``` sh
|
43
|
+
LITESTREAM_INSTALL_DIR=.bin
|
44
|
+
```
|
18
45
|
|
19
46
|
## Usage
|
20
47
|
|
21
|
-
|
48
|
+
### Configuration
|
49
|
+
|
50
|
+
You configure the Litestream executable through the [`config/litestream.yml` file](https://litestream.io/reference/config/), which is a standard Litestream configuration file as if Litestream was running in a traditional installation.
|
51
|
+
|
52
|
+
The gem streamlines the configuration process by providing a default configuration file for you. This configuration file will backup one application database to one replication bucket. In order to ensure that no secrets are stored in plain-text in your repository, this configuration file leverages Litestream's support for environment variables. The default configuration file looks like this:
|
53
|
+
|
54
|
+
```yaml
|
55
|
+
dbs:
|
56
|
+
- path: $LITESTREAM_DATABASE_PATH
|
57
|
+
replicas:
|
58
|
+
- url: $LITESTREAM_REPLICA_URL
|
59
|
+
access-key-id: $LITESTREAM_ACCESS_KEY_ID
|
60
|
+
secret-access-key: $LITESTREAM_SECRET_ACCESS_KEY
|
61
|
+
```
|
62
|
+
|
63
|
+
The gem also provides a default initializer file at `config/initializers/litestream.rb` that allows you to configure these four environment variables referenced in the configuration file in Ruby. By providing a Ruby interface to these environment variables, you can use any method of storing secrets that you prefer. For example, the default generated file uses Rails' encrypted credentials to store your secrets:
|
64
|
+
|
65
|
+
```ruby
|
66
|
+
litestream_credentials = Rails.application.credentials.litestream
|
67
|
+
Litestream.configure do |config|
|
68
|
+
config.database_path = ActiveRecord::Base.connection_db_config.database
|
69
|
+
config.replica_url = litestream_credentials.replica_url
|
70
|
+
config.replica_key_id = litestream_credentials.replica_key_id
|
71
|
+
config.replica_access_key = litestream_credentials.replica_access_key
|
72
|
+
end
|
73
|
+
```
|
74
|
+
|
75
|
+
However, if you need manual control over the Litestream configuration, you can manually edit the `config/litestream.yml` file. The full range of possible configurations are covered in Litestream's [configuration reference](https://litestream.io/reference/config/).
|
76
|
+
|
77
|
+
### Replication
|
78
|
+
|
79
|
+
By default, the gem will create or append to a `Procfile` to start the Litestream process via the gem's provided `litestream:replicate` rake task. This rake task will automatically load the configuration file and set the environment variables before starting the Litestream process.
|
80
|
+
|
81
|
+
Again, however, you can take full manual control over the replication process and simply run the `litestream replicate --config config/litestream.yml` command to start the Litestream process. Since the gem installs the native executable via Bundler, the `litestream` command will be available in your `PATH`.
|
82
|
+
|
83
|
+
The full set of commands available to the `litestream` executable are covered in Litestream's [command reference](https://litestream.io/reference/). Currently, only the `replicate` command is provided as a rake task by the gem.
|
84
|
+
|
85
|
+
### Using in development
|
86
|
+
|
87
|
+
By default, installing the gem does not update your `Procfile.dev` file, and so Litestream will not be started in development. If you would like to test that your configuration is properly setup, you can manually add the `litestream:replicate` rake task to your `Procfile.dev` file. Just copy the `litestream` definition from the production `Procfile`. Then, in order to have a replication bucket for Litestream to point to, you can use a Docker instance of [MinIO](https://min.io/). MinIO is an S3-compatible object storage server that can be run locally. You can run a MinIO server with the following command:
|
88
|
+
|
89
|
+
```sh
|
90
|
+
docker run -p 9000:9000 -p 9001:9001 minio/minio server /data --console-address ":9001"
|
91
|
+
```
|
92
|
+
|
93
|
+
This gets us up and running quickly but it will only persist the data for as long as the Docker container is running, which is fine for local development testing.
|
94
|
+
|
95
|
+
To simplify local development, you can add this command to your `Procfile.dev` file as well. This would allow you to start a MinIO server and a Litestream replication process in your local development environment with the single `bin/dev` command.
|
96
|
+
|
97
|
+
Once you have a MinIO server running, you can create a bucket for Litestream to use. You can do this by visiting the MinIO console at [http://localhost:9001](http://localhost:9001) and logging in with the default credentials of `minioadmin` and `minioadmin`. Once logged in, you can create a bucket named `mybkt` by clicking the `+` button in the bottom right corner of the screen. You can then use the following configuration in your `config/initializers/litestream.rb` file:
|
98
|
+
|
99
|
+
```ruby
|
100
|
+
Litestream.configure do |config|
|
101
|
+
config.database_path = ActiveRecord::Base.connection_db_config.database
|
102
|
+
config.replica_url = "s3://mybkt.localhost:9000/"
|
103
|
+
config.replica_key_id = "minioadmin"
|
104
|
+
config.replica_access_key = "minioadmin"
|
105
|
+
end
|
106
|
+
```
|
107
|
+
|
108
|
+
With Litestream properly configured and the MinIO server and Litestream replication process running, you should see something like the following in your terminal logs when you start the `bin/dev` process:
|
109
|
+
|
110
|
+
```sh
|
111
|
+
time=YYYY-MM-DDTHH:MM:SS level=INFO msg=litestream version=v0.3.xx
|
112
|
+
time=YYYY-MM-DDTHH:MM:SS level=INFO msg="initialized db" path=/path/to/your/app/storage/development.sqlite3
|
113
|
+
time=YYYY-MM-DDTHH:MM:SS level=INFO msg="replicating to" name=s3 type=s3 sync-interval=1s bucket=mybkt path="" region=us-east-1 endpoint=http://localhost:9000
|
114
|
+
```
|
22
115
|
|
23
116
|
## Development
|
24
117
|
|
25
118
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
26
119
|
|
27
|
-
To install this gem onto your local machine, run `bundle exec rake install`.
|
120
|
+
To install this gem onto your local machine, run `bundle exec rake install`.
|
121
|
+
|
122
|
+
For maintainers, to release a new version, run `bin/release $VERSION`, which will create a git tag for the version, push git commits and tags, and push all of the platform-specific `.gem` files to [rubygems.org](https://rubygems.org).
|
28
123
|
|
29
124
|
## Contributing
|
30
125
|
|
31
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
126
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/fractaledmind/litestream-ruby. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/fractaledmind/litestream-ruby/blob/main/CODE_OF_CONDUCT.md).
|
32
127
|
|
33
128
|
## License
|
34
129
|
|
@@ -36,4 +131,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
|
|
36
131
|
|
37
132
|
## Code of Conduct
|
38
133
|
|
39
|
-
Everyone interacting in the Litestream project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/
|
134
|
+
Everyone interacting in the Litestream project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/fractaledmind/litestream-ruby/blob/main/CODE_OF_CONDUCT.md).
|
data/exe/litestream
CHANGED
data/lib/litestream/commands.rb
CHANGED
@@ -17,61 +17,70 @@ module Litestream
|
|
17
17
|
class DirectoryNotFoundException < StandardError
|
18
18
|
end
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
end
|
20
|
+
def self.platform
|
21
|
+
[:cpu, :os].map { |m| Gem::Platform.local.send(m) }.join("-")
|
22
|
+
end
|
24
23
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
else
|
33
|
-
raise DirectoryNotFoundException, <<~MESSAGE
|
34
|
-
LITESTREAM_INSTALL_DIR is set to #{litestream_install_dir}, but that directory does not exist.
|
35
|
-
MESSAGE
|
36
|
-
end
|
24
|
+
def self.executable(exe_path: DEFAULT_DIR)
|
25
|
+
litestream_install_dir = ENV["LITESTREAM_INSTALL_DIR"]
|
26
|
+
if litestream_install_dir
|
27
|
+
if File.directory?(litestream_install_dir)
|
28
|
+
warn "NOTE: using LITESTREAM_INSTALL_DIR to find litestream executable: #{litestream_install_dir}"
|
29
|
+
exe_path = litestream_install_dir
|
30
|
+
exe_file = File.expand_path(File.join(litestream_install_dir, "litestream"))
|
37
31
|
else
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
32
|
+
raise DirectoryNotFoundException, <<~MESSAGE
|
33
|
+
LITESTREAM_INSTALL_DIR is set to #{litestream_install_dir}, but that directory does not exist.
|
34
|
+
MESSAGE
|
35
|
+
end
|
36
|
+
else
|
37
|
+
if Litestream::Upstream::NATIVE_PLATFORMS.keys.none? { |p| Gem::Platform.match_gem?(Gem::Platform.new(p), GEM_NAME) }
|
38
|
+
raise UnsupportedPlatformException, <<~MESSAGE
|
39
|
+
litestream-ruby does not support the #{platform} platform
|
40
|
+
Please install litestream following instructions at https://litestream.io/install
|
41
|
+
MESSAGE
|
42
|
+
end
|
43
|
+
|
44
|
+
exe_file = Dir.glob(File.expand_path(File.join(exe_path, "*", "litestream"))).find do |f|
|
45
|
+
Gem::Platform.match_gem?(Gem::Platform.new(File.basename(File.dirname(f))), GEM_NAME)
|
48
46
|
end
|
47
|
+
end
|
49
48
|
|
50
|
-
|
51
|
-
|
52
|
-
|
49
|
+
if exe_file.nil? || !File.exist?(exe_file)
|
50
|
+
raise ExecutableNotFoundException, <<~MESSAGE
|
51
|
+
Cannot find the litestream executable for #{platform} in #{exe_path}
|
53
52
|
|
54
|
-
|
53
|
+
If you're using bundler, please make sure you're on the latest bundler version:
|
55
54
|
|
56
|
-
|
57
|
-
|
55
|
+
gem install bundler
|
56
|
+
bundle update --bundler
|
58
57
|
|
59
|
-
|
58
|
+
Then make sure your lock file includes this platform by running:
|
60
59
|
|
61
|
-
|
62
|
-
|
60
|
+
bundle lock --add-platform #{platform}
|
61
|
+
bundle install
|
63
62
|
|
64
|
-
|
63
|
+
See `bundle lock --help` output for details.
|
65
64
|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
65
|
+
If you're still seeing this message after taking those steps, try running
|
66
|
+
`bundle config` and ensure `force_ruby_platform` isn't set to `true`. See
|
67
|
+
https://github.com/fractaledmind/litestream-ruby#check-bundle_force_ruby_platform
|
68
|
+
for more details.
|
69
|
+
MESSAGE
|
70
|
+
end
|
72
71
|
|
73
|
-
|
72
|
+
exe_file
|
73
|
+
end
|
74
|
+
|
75
|
+
def self.replicate
|
76
|
+
if Litestream.configuration
|
77
|
+
ENV["LITESTREAM_DATABASE_PATH"] = Litestream.configuration.database_path
|
78
|
+
ENV["LITESTREAM_REPLICA_URL"] = Litestream.configuration.replica_url
|
79
|
+
ENV["LITESTREAM_ACCESS_KEY_ID"] = Litestream.configuration.replica_key_id
|
80
|
+
ENV["LITESTREAM_SECRET_ACCESS_KEY"] = Litestream.configuration.replica_access_key
|
74
81
|
end
|
82
|
+
|
83
|
+
system(executable, "replicate", "--config", Rails.root.join("config", "litestream.yml").to_s)
|
75
84
|
end
|
76
85
|
end
|
77
86
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rails/generators/base"
|
4
|
+
|
5
|
+
module Litestream
|
6
|
+
module Generators
|
7
|
+
class InstallGenerator < ::Rails::Generators::Base
|
8
|
+
source_root File.expand_path("templates", __dir__)
|
9
|
+
|
10
|
+
def copy_config_file
|
11
|
+
template "litestream.yml", "config/litestream.yml"
|
12
|
+
end
|
13
|
+
|
14
|
+
def copy_initializer_file
|
15
|
+
template "litestream.rb", "config/initializers/litestream.rb"
|
16
|
+
end
|
17
|
+
|
18
|
+
def create_or_update_procfile
|
19
|
+
if File.exist?("Procfile")
|
20
|
+
append_to_file "Procfile", "litestream: bin/rails litestream:replicate"
|
21
|
+
else
|
22
|
+
create_file "Procfile" do
|
23
|
+
<<~PROCFILE
|
24
|
+
rails: bundle exec rails server --port $PORT
|
25
|
+
litestream: bin/rails litestream:replicate
|
26
|
+
PROCFILE
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# Use this hook to configure the litestream-ruby gem.
|
2
|
+
# All configuration options will be available as environment variables, e.g.
|
3
|
+
# config.database_path becomes LITESTREAM_DATABASE_PATH
|
4
|
+
# This allows you to configure Litestream using Rails encrypted credentials,
|
5
|
+
# or some other mechanism where the values are only avaialble at runtime.
|
6
|
+
|
7
|
+
Litestream.configure do |config|
|
8
|
+
# An example of using Rails encrypted credentials to configure Litestream.
|
9
|
+
# litestream_credentials = Rails.application.credentials.litestream
|
10
|
+
#
|
11
|
+
# The absolute or relative path to a SQLite database file.
|
12
|
+
# Litestream will monitor this file for changes and replicate them to the
|
13
|
+
# any of the configured replicas specified for this database in the
|
14
|
+
# `litestream.yml` configuration file.
|
15
|
+
# When using SQLite as your database engine for ActiveRecord, you should always
|
16
|
+
# set this to the path of your SQLite database file. You can do so using Rails'
|
17
|
+
# existing knowledge of the database path.
|
18
|
+
# config.database_path = ActiveRecord::Base.connection_db_config.database
|
19
|
+
|
20
|
+
# Short-hand form of specifying a replica location.
|
21
|
+
# When using S3, a value will look like "s3://mybkt.litestream.io/db"
|
22
|
+
# Litestream also supports Azure Blog Storage, Backblaze B2, DigitalOcean Spaces,
|
23
|
+
# Scaleway Object Storage, Google Cloud Storage, Linode Object Storage, and
|
24
|
+
# any SFTP server.
|
25
|
+
# In this example, we are using Rails encrypted credentials to store the URL to
|
26
|
+
# our storage provider bucket.
|
27
|
+
# config.replica_url = litestream_credentials.replica_url
|
28
|
+
|
29
|
+
# Replica-specific authentication key.
|
30
|
+
# Litestream needs authentication credentials to access your storage provider bucket.
|
31
|
+
# In this example, we are using Rails encrypted credentials to store the access key ID.
|
32
|
+
# config.replica_key_id = litestream_credentials.replica_key_id
|
33
|
+
|
34
|
+
# Replica-specific secret key.
|
35
|
+
# Litestream needs authentication credentials to access your storage provider bucket.
|
36
|
+
# In this example, we are using Rails encrypted credentials to store the secret access key.
|
37
|
+
# config.replica_access_key = litestream_credentials.replica_access_key
|
38
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# This is the actual configuration file for litestream.
|
2
|
+
# Edit this file as needed to configure your needs for litestream repication.
|
3
|
+
#
|
4
|
+
# For more details, see: https://litestream.io/reference/config/
|
5
|
+
dbs:
|
6
|
+
- path: $LITESTREAM_DATABASE_PATH
|
7
|
+
replicas:
|
8
|
+
- url: $LITESTREAM_REPLICA_URL
|
9
|
+
access-key-id: $LITESTREAM_ACCESS_KEY_ID
|
10
|
+
secret-access-key: $LITESTREAM_SECRET_ACCESS_KEY
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rails/railtie"
|
4
|
+
|
5
|
+
module Litestream
|
6
|
+
class Railtie < ::Rails::Railtie
|
7
|
+
# Load the `litestream:install` generator into the host Rails app
|
8
|
+
generators do
|
9
|
+
require_relative "generators/litestream/install_generator"
|
10
|
+
end
|
11
|
+
|
12
|
+
# Load the `litestream:env` Rake task into the host Rails app
|
13
|
+
rake_tasks do
|
14
|
+
load "tasks/litestream_tasks.rake"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/litestream/upstream.rb
CHANGED
@@ -8,7 +8,7 @@ module Litestream
|
|
8
8
|
"arm64-darwin" => "litestream-#{VERSION}-darwin-arm64.zip",
|
9
9
|
"arm64-linux" => "litestream-#{VERSION}-linux-arm64.tar.gz",
|
10
10
|
"x86_64-darwin" => "litestream-#{VERSION}-darwin-amd64.zip",
|
11
|
-
"x86_64-linux" => "litestream-#{VERSION}-linux-amd64.tar.gz"
|
11
|
+
"x86_64-linux" => "litestream-#{VERSION}-linux-amd64.tar.gz"
|
12
12
|
}
|
13
13
|
end
|
14
14
|
end
|
data/lib/litestream/version.rb
CHANGED
data/lib/litestream.rb
CHANGED
@@ -1,8 +1,25 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative "litestream/version"
|
4
|
-
|
5
3
|
module Litestream
|
6
|
-
class
|
7
|
-
|
4
|
+
class << self
|
5
|
+
attr_accessor :configuration
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.configure
|
9
|
+
self.configuration ||= Configuration.new
|
10
|
+
yield(configuration)
|
11
|
+
end
|
12
|
+
|
13
|
+
class Configuration
|
14
|
+
attr_accessor :database_path, :replica_url, :replica_key_id, :replica_access_key
|
15
|
+
|
16
|
+
def initialize
|
17
|
+
@mailer_sender = "donotreply@example.com"
|
18
|
+
end
|
19
|
+
end
|
8
20
|
end
|
21
|
+
|
22
|
+
require_relative "litestream/version"
|
23
|
+
require_relative "litestream/upstream"
|
24
|
+
require_relative "litestream/commands"
|
25
|
+
require_relative "litestream/railtie" if defined?(::Rails::Railtie)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
namespace :litestream do
|
2
|
+
desc "Print the ENV variables needed for the Litestream config file"
|
3
|
+
task env: :environment do
|
4
|
+
if Litestream.configuration.nil?
|
5
|
+
warn "You have not configured the Litestream gem with any values to generate ENV variables"
|
6
|
+
next
|
7
|
+
end
|
8
|
+
|
9
|
+
puts "LITESTREAM_DATABASE_PATH=#{Litestream.configuration.database_path}"
|
10
|
+
puts "LITESTREAM_REPLICA_URL=#{Litestream.configuration.replica_url}"
|
11
|
+
puts "LITESTREAM_ACCESS_KEY_ID=#{Litestream.configuration.replica_key_id}"
|
12
|
+
puts "LITESTREAM_SECRET_ACCESS_KEY=#{Litestream.configuration.replica_access_key}"
|
13
|
+
|
14
|
+
true
|
15
|
+
end
|
16
|
+
|
17
|
+
desc ""
|
18
|
+
task replicate: :environment do
|
19
|
+
Litestream::Commands.replicate
|
20
|
+
end
|
21
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: litestream
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: arm64-linux
|
6
6
|
authors:
|
7
7
|
- Stephen Margheim
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-12-
|
11
|
+
date: 2023-12-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -24,6 +24,34 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rails
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: sqlite3
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
27
55
|
description:
|
28
56
|
email:
|
29
57
|
- stephen.margheim@gmail.com
|
@@ -40,8 +68,13 @@ files:
|
|
40
68
|
- exe/litestream
|
41
69
|
- lib/litestream.rb
|
42
70
|
- lib/litestream/commands.rb
|
71
|
+
- lib/litestream/generators/litestream/install_generator.rb
|
72
|
+
- lib/litestream/generators/litestream/templates/litestream.rb
|
73
|
+
- lib/litestream/generators/litestream/templates/litestream.yml
|
74
|
+
- lib/litestream/railtie.rb
|
43
75
|
- lib/litestream/upstream.rb
|
44
76
|
- lib/litestream/version.rb
|
77
|
+
- lib/tasks/litestream_tasks.rake
|
45
78
|
homepage: https://github.com/fractaledmind/litestream-ruby
|
46
79
|
licenses:
|
47
80
|
- MIT
|
@@ -65,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
65
98
|
- !ruby/object:Gem::Version
|
66
99
|
version: '0'
|
67
100
|
requirements: []
|
68
|
-
rubygems_version: 3.
|
101
|
+
rubygems_version: 3.5.1
|
69
102
|
signing_key:
|
70
103
|
specification_version: 4
|
71
104
|
summary: Integrate Litestream with the RubyGems infrastructure.
|