| 123456789101112131415161718192021222324 |
- # frozen_string_literal: true
- require 'English'
- namespace :db do
- desc 'Waits for database to be available'
- task :wait_for_init do
- require 'socket'
- 20.times do
- # postgres://postgres:postgres@db:5432/postgres
- # we want: ^^ ^^^^
- db_host = ENV['DATABASE_URL'].split(/:|@/)[3]
- db_port = ENV['DATABASE_URL'].split(/:|@/)[4].to_i
- sock = TCPSocket.new db_host, db_port
- sock.close
- break
- rescue StandardError
- $stderr.puts "db:wait_for_init: #{$ERROR_INFO}"
- sleep 6
- end
- end
- end
|