./lib/helios/commands/server.rb in helios-0.2.1 vs ./lib/helios/commands/server.rb in helios-0.2.2
- old
+ new
@@ -26,18 +26,21 @@
def validate_database_settings!
Dotenv.load
say_error "DATABASE_URL environment variable not set in .env or in Rails config/database.yml" and abort if ENV['DATABASE_URL'].nil?
+ uri = URI(ENV['DATABASE_URL'])
+
+ say_error "DATABASE_URL environment variable not set to PostgreSQL database" and abort unless ["postgres", "postgresql"].include?(uri.scheme)
+
begin
db = Sequel.connect(ENV['DATABASE_URL'])
db.test_connection
rescue Sequel::DatabaseConnectionError => error
say_warning %{Error connecting to database: "#{error.message.strip}"}
case error.message
when /database "(.+)" does not exist/
if agree "Would you like to create this database now? (y/n)"
- uri = URI(db.uri)
host, database = uri.host, uri.path.delete("/")
log 'createdb', database
system "createdb -h #{host} #{database}"
end