2014-11-21 2 views
1

У меня есть Баш скрипт start_dummy:Как получить Puma порт внутри Синатра

#!/usr/bin/env bash 

#killall puma 
ulimit -s 16384 
ofile=logs/access_`date +%F_%H%M%S`.log 
RACK_ENV=production puma -b tcp://0.0.0.0:22522 2>&1 | tee $ofile 

и start_test:

#!/usr/bin/env bash 

#killall puma 
ulimit -s 16384 
ofile=logs/access_`date +%F_%H%M%S`.log 
RACK_ENV=production puma -b tcp://0.0.0.0:22577 2>&1 | tee $ofile 

Я хочу подключить другую базу данных, когда приложение работает на другом порту:

require 'sinatra' 
# *snip* sinatra configuration 

require 'data_mapper' 
DataMapper::Model.raise_on_save_failure = true 
if # __WHAT__ # when puma listen on 22577 
    DataMapper.setup(:default, 'postgres://[email protected]/original') 
else  # when puma listen on 22522 
    DataMapper.setup(:default, 'postgres://[email protected]/dummy') 
end 

Что следует вставить на __WHAT__?

ответ

3
if request.port == 22577 
    DataMapper.setup(:default, 'postgres://[email protected]/original') 
else 
    DataMapper.setup(:default, 'postgres://[email protected]/dummy') 
end 

Лучший способ сделать это было бы хранить строку подключения в переменной окружения, которые могут отличаться друг от друга на сервере:

DataMapper.setup(:default, ENV['DATABASE_URL']) 

 Смежные вопросы

  • Нет связанных вопросов^_^