2012-06-08 15 views
5

हमारे पास एक उत्पादन डेटाबेस है, और हम अपने स्टेजिंग डेटाबेस पर नियमित स्नैपशॉट लेना चाहते हैं।क्या आप फोर्किंग का उपयोग कर ऐप्स के बीच उसकेोकू डेटाबेस माइग्रेट कर सकते हैं?

मुझे पता है कि pgbackups का उपयोग करके इसे कैसे किया जाए, मैं सोच रहा था कि क्या कोई जानता है कि नए हेरोोकपोस्टग्रेस फोर्क फ़ंक्शन के साथ इसे कैसे किया जाए।

उत्तर

7

हां, आप सीधे एक आवेदन डीबी से दूसरे में एक कांटा बना सकते हैं। ऐसा करने के लिए इसे अपनी प्राथमिक आवेदन से अपने DATABASE_URL के लिए मूल्य मिलता है तो नीचे दिए गए आदेश में इसका इस्तेमाल करते हैं:

heroku addons:add heroku-postgresql:ronin --fork postgres://username:[email protected]/database --app yourstagingapp 
+0

बिल्कुल सही, धन्यवाद – Alex

+0

postgres प्राप्त करने के लिए: // यूआरएल, चलाने $ Heroku config और DATABASE_URL लाइन हड़पने (या HEROKU_POSTGRESQL_color_URL) –

3

क्रेग की जवाब देने के लिए जोड़ा जा रहा है, यहाँ a script by freeformz जो पूरे काम करता है।

app=${1} 
db_type=${2:-ronin} 

old_db=`heroku config -a ${app}-staging | grep ^HEROKU_POSTGRESQL | cut -d : -f 1 | sed s/_URL//` 
heroku addons:add heroku-postgresql:${db_type} --fork `heroku config -a ${app} | grep ^DATABASE_URL | cut -d : -f 2-5` -a ${app}-staging 
new_db=`heroku config -a ${app}-staging | grep ^HEROKU_POSTGRESQL | grep -v ${old_db} | cut -d : -f 1 | sed s/_URL//` 
heroku pg:wait -a ${app}-staging 
heroku pg:promote ${new_db} -a ${app}-staging 
#Remove the old db 
if [ ! -z "${old_db}" ]l; then 
    heroku addons:remove ${old_db} -a ${app}-staging --confirm ${app}-staging 
fi 
संबंधित मुद्दे

 संबंधित मुद्दे