method
edit_compose_yaml
rails latest stable - Class:
Rails::Generators::Db::System::ChangeGenerator
edit_compose_yaml()private
No documentation available.
# File railties/lib/rails/generators/rails/db/system/change/change_generator.rb, line 120
def edit_compose_yaml
compose_yaml_path = File.expand_path(".devcontainer/compose.yaml", destination_root)
return unless File.exist?(compose_yaml_path)
compose_config = YAML.load_file(compose_yaml_path)
Database.all.each do |database|
compose_config["services"].delete(database.name)
compose_config["volumes"]&.delete(database.volume)
compose_config["services"]["rails-app"]["depends_on"]&.delete(database.name)
end
if database.service
compose_config["services"][database.name] = database.service
compose_config["volumes"] = { database.volume => nil }.merge(compose_config["volumes"] || {})
compose_config["services"]["rails-app"]["depends_on"] = [
database.name,
compose_config["services"]["rails-app"]["depends_on"]
].flatten.compact
end
compose_config.delete("volumes") unless compose_config["volumes"]&.any?
compose_config["services"]["rails-app"].delete("depends_on") unless compose_config["services"]["rails-app"]["depends_on"]&.any?
File.write(compose_yaml_path, compose_config.to_yaml)
end