2015-03-14 14 views
8

से हैकोकू पोस्टग्रेज़ डेटाबेस में आयात नहीं कर सकता है क्षमा करें अगर यह एक डुप्लिकेट है, लेकिन मैंने यहां एक जवाब खोजने का प्रयास किया, और कुछ भी मदद नहीं की।डंप

इसलिए मैंने this और this जैसे उसके लेखों को पढ़ा है। मैं एक डंप फ़ाइल को सहेजने में सक्षम था, जिसे मैंने pg:backups capture कमांड के साथ बनाया है। इसे एस 3 पर अपलोड किया गया और इसे पुनर्स्थापित करने का प्रयास किया गया:

heroku pg:backups restore DATABASE 'https://s3-eu-west-1.amazonaws.com/somebucket/uploads/tmp/b011.dump' 

लेकिन यह काम नहीं करता है! कंसोल में यह लॉग:

Unknown database: https://s3-eu-west-1.amazonaws.com/somebucket/uploads/tmp/b011.dump. Valid options are: DATABASE_URL, HEROKU_POSTGRESQL_SILVER_URL 

की कोशिश की DATABASE के बजाय सूचीबद्ध विकल्पों, लेकिन एक ही परिणाम के साथ। इसके अलावा मैंने अन्य होस्टिंग की कोशिश की है, लेकिन उसी परिणाम के साथ, फिर से। मैं भी अन्य एप्लिकेशन से पुनर्स्थापित कर इस तरह की कोशिश की:

heroku pg:backups restore myapp::b001 HEROKU_POSTGRESQL_SILVER --app myapp-cedar 

लेकिन यह लॉग Backup oncampus::b001 not found. हालांकि, आदेश heroku pg:backups --app myapp से पता चलता है कि यह साथ मौजूद है।

=== Backups 
ID Backup Time    Status        Size Database 
---- ------------------------- ---------------------------------- ------ -------- 
b001 2015-03-13 18:10:14 +0000 Finished 2015-03-13 18:10:22 +0000 9.71MB ORANGE 

पता नहीं अब क्या करना है। बस उम्मीद है कि कोई मेरी मदद करेगा।

+0

आज़माएं: 'heroku pg: बैकअप पुनर्स्थापित HEROKU_POSTGRESQL_SILVER' https: // s3-eu-west-1.amazonaws.com/somebucket/uploads/tmp/b011.dump'' और सुनिश्चित करें कि अमेज़ॅन पर फ़ाइल एक्सेसिबल है बाहर से। – cristian

+0

मुझे यह वही समस्याएं आ रही हैं। ऐसा लगता है कि हेरोोकू ने पीजी को हटा दिया है: बैकअप एड ऑन और अपनी मानक पोस्टग्रेज़ कार्यक्षमता में कार्यक्षमता का निर्माण किया है। यहां नए दस्तावेज़ देखें: https://devcenter.heroku.com/articles/heroku-postgres-backups। वे सीधे यूआरएल के माध्यम से आयात करने से दस्तावेज प्रदान नहीं करते हैं। –

+0

@ क्रिस्टियन ने कोशिश की। यह भी जांच की जाती है कि यह निजी सत्र के माध्यम से सुलभ है या नहीं। –

उत्तर

8

आदेश के लिए तर्कों का क्रम महत्वपूर्ण है। उपरोक्त पहले उदाहरण में, आपके पास heroku pg:backups restore DATABASE 'https://s3-eu-west-1.amazonaws.com/somebucket/uploads/tmp/b011.dump' है, लेकिन कमांड संदर्भ FIRST और db को दूसरे में लोड करने की अपेक्षा करता है, जो इसके बजाय heroku pg:backups restore 'https://s3-eu-west-1.amazonaws.com/somebucket/uploads/tmp/b011.dump' DATABASE देगा। मुझे लगता है कि नई सामग्री आईडी में यूआरएल को प्राथमिकता दी जा सकती है, लेकिन यूआरएल तब तक काम करना चाहिए जब तक वह यूआरएल सुलभ हो। उम्मीद है कि मदद करता है, अन्यथा मुझे बताएं और हम कुछ अन्य चीजों को आजमा सकते हैं।

+0

हाहा, इस विवरण ने सबकुछ हल किया। धन्यवाद! –

+0

बहुत बढ़िया। अनदेखी करने के लिए वास्तव में एक आसान विवरण, और दुर्भाग्यवश इस मामले में त्रुटि संदेश बहुत मदद नहीं देता है। सुनने के लिए खुशी हुई कि आपको वापस ट्रैक पर मिला! मैं हेरोोक पोस्टग्रेस टीम का उल्लेख करूंगा कि नए दस्तावेज़ यूआरएल से आयात को कवर नहीं करते हैं। – geemus

+0

ग्रेट उत्तर।इसने मेरा मुद्दा भी हल किया! –

1

आप s3cmd साख कॉन्फ़िगर आशा है कि यह मदद करता है की जरूरत है नीचे
backup.sh

NOWDATE=`date +%Y-%m-%d` 
BACKUPNAME=$NOWDATE.dump 
export PGPASSWORD='<password>' 
echo “Creating backup of database to $BACKUPNAME” 
/usr/bin/pg_dump --host <urhostname> --port 5432 --username "<user>" --role "<role>" --no-password --format tar --blobs --verbose --file "./$BACKUPNAME" "dbname" 
echo “Succesfully created database backup” 
echo “Uploading backup to Amazon S3 bucket…” 
s3cmd put $BACKUPNAME s3://path/to/$BACKUPNAME 
echo “Successfully uploaded backup to S3″ 
echo “Deleting backup file…” 
rm $BACKUPNAME 
echo “Done” 

restore.sh

NOWDATE=`date +%Y-%m-%d` 
BACKUPNAME=$NOWDATE.dump 
echo “downloading the file $BACKUPNAME” 
s3cmd get s3://path/to/$BACKUPNAME 
echo “Succesfully downloaded” 
echo “Will restore it Please wait “ 
export PGPASSWORD='<password>' 
pg_restore --host <host> --port 5432 --username "<user>" --dbname "<databasename>" --role "<role>" --no-password --verbose "./$BACKUPNAME" 
echo “restoring the file $BACKUPNAME” 
echo “Deleting backup file…” 
rm -r $BACKUPNAME 

echo “Done” 

के रूप में दो श फ़ाइलों को तैयार!

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