Skip to content

Commit bd31917

Browse files
committed
Devcontainer: Use SQLite3 feature.
This feature includes the dependencies needed for SQLite (previously we were getting these from lib-vips installation), and the SQLite3 client.
1 parent 9ad3685 commit bd31917

File tree

3 files changed

+16
-6
lines changed

3 files changed

+16
-6
lines changed

railties/lib/rails/generators/devcontainer.rb

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@
33
module Rails
44
module Generators
55
module Devcontainer
6+
DB_FEATURES = {
7+
"mysql" => "ghcr.io/rails/devcontainer/features/mysql-client",
8+
"postgresql" => "ghcr.io/rails/devcontainer/features/postgres-client",
9+
"sqlite3" => "ghcr.io/rails/devcontainer/features/sqlite3"
10+
}
11+
612
private
713
def devcontainer_dependencies
814
return @devcontainer_dependencies if @devcontainer_dependencies
@@ -124,6 +130,7 @@ def db_service_for_devcontainer(database = options[:database])
124130

125131
def db_feature_for_devcontainer(database = options[:database])
126132
case database
133+
when "sqlite3" then sqlite3_feature
127134
when "mysql" then mysql_feature
128135
when "postgresql" then postgres_feature
129136
end
@@ -178,18 +185,19 @@ def db_service_names
178185
end
179186

180187
def mysql_feature
181-
{ "ghcr.io/rails/devcontainer/features/mysql-client" => {} }
188+
{ DB_FEATURES["mysql"] => {} }
182189
end
183190

184191
def postgres_feature
185-
{ "ghcr.io/rails/devcontainer/features/postgres-client" => {} }
192+
{ DB_FEATURES["postgresql"] => {} }
193+
end
194+
195+
def sqlite3_feature
196+
{ DB_FEATURES["sqlite3"] => {} }
186197
end
187198

188199
def db_features
189-
[
190-
"ghcr.io/rails/devcontainer/features/mysql-client",
191-
"ghcr.io/rails/devcontainer/features/postgres-client"
192-
]
200+
@db_features ||= DB_FEATURES.values
193201
end
194202

195203
def local_rails_mount

railties/test/generators/app_generator_test.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1287,6 +1287,7 @@ def test_devcontainer
12871287
assert_equal "selenium", content["containerEnv"]["SELENIUM_HOST"]
12881288
assert_equal({}, content["features"]["ghcr.io/rails/devcontainer/features/activestorage"])
12891289
assert_equal({}, content["features"]["ghcr.io/devcontainers/features/github-cli:1"])
1290+
assert_equal({}, content["features"]["ghcr.io/rails/devcontainer/features/sqlite3"])
12901291
assert_includes(content["forwardPorts"], 3000)
12911292
assert_includes(content["forwardPorts"], 6379)
12921293
end

railties/test/generators/db_system_change_generator_test.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ class ChangeGeneratorTest < Rails::Generators::TestCase
5555
assert_file(".devcontainer/devcontainer.json") do |content|
5656
assert_match(/"DB_HOST": "postgres"/, content)
5757
assert_match(/"ghcr.io\/rails\/devcontainer\/features\/postgres-client":/, content)
58+
assert_no_match(/"ghcr.io\/rails\/devcontainer\/features\/sqlite3":/, content)
5859
end
5960

6061
assert_compose_file do |compose_config|

0 commit comments

Comments
 (0)