好吧。
歡迎回來。
因此，在這個視頻中，我們要去解決，我在最後一個視頻這就是現在我們正在使用我們的本地九霄雲外開發環境和我們的生產環境在Heroku上的一個數據庫中提到的問題。
因此，我們部署的代碼是使用我們的測試地面這實在不是一個好主意相同的數據庫。
事情做工精細它不是在這個意義上的一個問題，我們的代碼被打破或者說我們不能用這種方式獲得，但它真的不是一個好的做法，因為我們不希望有一個數據庫，在那裡，你知道，如果我們有一個大應用我們的主數據庫與所有的使用者認為的已部署。
我們不希望成為測試的東西，胡鬧和數據庫中添加新功能意外刪除的條目或刪除整個數據庫。
在我們的開發環境。
所以，你想保持這些獨立的。
而只是為了現在證明我們已經回事。
我記得，我們​​所做的是我們更新了我們的代碼，而不是使用本地主機。
你不能養活10或任何數據庫，你或者你有存在，但雲9本地版本，我們更新它是滿谷實驗室。
這是我們實驗室蒙戈實例，這是一個我們這個地方現在運行一樣。
而在Heroku所以我就刷新這兩個網頁。
這是Heroku的部署，你可以看到我們有一個圈地海灘和我們再次有圈地海灘只是為了證明它們連接當然。
讓我們添加一個新的露營地在這裡。
對於這個名稱將是科比的小海灣。
我就用這個形象在這裡是一個我花了幾個晚上前完全無恥的插頭。
沒有什麼可以做的。
所以，我要複製在這裡，只是把等等等等自動完成這種糊。
謝謝。
鍍鉻點擊提交。
好讓我們有這個在這裡在Heroku。
我和刷新。
我有同樣的代碼柯比這裡創建本地。
所以，它甚至不是災難性的事件。
當開發人員可能意外的刪除整個數據庫。
讓我們來看看這一點。
比方說，我想測試一個功能，我想知道的是刪除我刪除路由的工作工作。
如果我去在這裡嘛，如果我刪除了一些東西，我沒有簽字，但如果我不從生產刪除此，我也將其刪除，這意味著我刪除某人的實際數據這是從來沒有好。
所以真的有單獨的數據庫是一個好主意。
因此，解決這個問題的一個方法就是回到雲9，只是在九霄雲外開關。
嗯，我們這裡使用的，使我們現在使用本地主機陣營再次版本保存在這裡，現在重新啟動服務器雲9 5刷新。
你會看到，我們使用的是舊版本或者我們使用本地版本前，在Heroku上我們仍然使用艋舺實驗室實例，因為現在他們是不同步的。
我們有我們的雲9，我們還沒有推到她的OK當地所做的更改。
這是罰款。
這將工作是有效的，但它是一種煩人，因為如果我不希望讓我們說增加了新的功能，我改變（C S）S和我想更新在Heroku上。
那好吧，我將不得不找出我要怎麼辦，你知道我們的數據庫。
我不得不註釋掉它評論說，或者重新作出對取消註釋，一個保存和指揮這一切推到Heroku和那麼如果我想在本地再添加新的功能或測試出來的東西。
我評論說，並取消這一點，它只是它真的不是一個好的解決辦法都沒有。
但是，有另一種解決方案，或另一種方法中，我們可以採取。
基本上就是我們要做的就是編寫一些代碼，說如果我們是在生產運行或設置你出這個數據庫。
否則，將其設置為這個在這裡。
現在，它實際上沒有將是一個if語句。
而且我們不是技術上的檢查，如果我們在生產中，如果我們或如果我們在Heroku。
這是一個有點不同。
我們現在要做的是利用一種叫做環境變量。
所以，我們以前見過他們。
這個小線就在這裡負責審查和每一個快遞應用過程中確實羨慕端口的過程，EMV IP。
所以，這是什麼意思就在這裡這是什麼。
而我去了這個簡單，但我認為你會做一些更有意義，現在，你有你的腰帶下的一些更多的經驗。
什麼這指的是就是這個代碼正在運行的環境。
所以，你羨慕了端口上九霄雲外可能比的過程，在她的Roku點口，也許不同的過程可能是IP肯定是。
因此，這些都是補充說，沒有硬編碼的改變基於關閉他們在正在運行的環境的事情變量的方法。
因此，我們可以已經把像80 80在這裡。
但是，當然這是硬編碼。
這不是動態的。
這讓我們不得不在JavaScript的其實只是一個節點環境和節點響應變量。
他們總是開始與過程D-NV這就是你如何訪問它們。
然後將變量的名稱。
那麼，我們要在這裡做的是有一個環境變量，將調用數據庫的養老和在Heroku上我們要設置的數據庫，你可以在這裡成為這個長長的東西，然後一切都將要做的就是基本上寫過程你是數據庫。
這將引用您的URL給我們的環境的正確。
然後我們會在這裡做同樣的事情。
我們在九霄雲外數據庫您阿雷爾以及設置為蒙加爾D-B結腸削減我們本地主機，她可以Campfield 10。
所以，再一次的想法是，我們可以創建一個我還沒有顯示你如何做一個環境變量。
這僅僅是你如何訪問它們。
但是，請記住這是從該應用程序之外的到來。
這是從我們正在其上運行的代碼中的實際應用或實際環境中的服務器來。
因此，要證明我們如何使這項工作我要去準備在這裡收出開始，我要創造環境的命令行新的環境變量，當一個類型的出口是一個新的命令，然後我要去寫它通常約定在全部大寫做我的環境變量。
正如你可以在這裡看到的IP端口。
所以，我們要做的數據庫。
你們都是平等的，我們要啟動它重置等於我們要在我們九霄雲外實例上運行我們希望你們都等於該數據庫的內容。
就這樣，然後按Enter檢查如果那是。
要在這裡做的權利實際上就在這裡。
取消該日誌的過程。
爸爸羨慕。
而這需要符合你知道數據庫。
如果我們看到坎維10吐出這蒙加爾D-B結腸癌的等等等等本地主機背出或打印出來，那麼我們就知道，我們已經成功地建立了你知道開發數據庫。
因此，讓我們看看會發生什麼節點。
是的，有我們去看到它在這裡被打印出來。
我從來沒有說過打印出本地主機。
你可以假裝。
我說的是環境變量數據庫你了。
所以，現在我們需要做的是說Mangeshkar連接來處理NVI數據庫。
您IRA然後在Heroku上，我們需要去更新數據庫，您知道是這個實驗室蒙戈巨人你們都是字符串，但我們只希望這種情況在Heroku上發生。
我們要離開這個獨自在九霄雲外。
因此，讓我們只是要確保它的工作這麼練聲曲重新啟動。
大。
讓我們去我們的正確的版本在這裡刷新，我們仍然得到本地代碼，因為我們沒有任何推代碼的Heroku當然Heroku的是不變的。
因此，如果我們保存這個並添加並承諾說更新你IRL得到推的Heroku中號..
如果我們嘗試和現在運行Heroku的版本，如果我就這樣結束至少如果我嘗試刷新此頁我要去，因為Heroku的是，這將是能夠找到方法研究vidette數據庫服務器有一個錯誤你知道，因為它不成立。
所以只是告訴你，刷新可能需要一段時間，他們應該得到應用程序錯誤，雖然這是去那裡才好。
應用程序錯誤再次，如果你真的想知道到底發生了什麼。
這是Heroku的日誌，你可以在這裡看到我不知道，我們得到的錯誤信息是多麼有用將是誠實。
讓我們來看看。
這可能是那些不告訴你，你所希望的到底是什麼消息之一，但它告訴我們蒙加爾D-B有一個錯誤。
蝦夷並沒有它沒有明確提到此數據庫你是一個問題，因為什麼是實際發生的情況是，它試圖連接到一個空字符串最有可能在技術上並不只是一個事實，即沒有數據庫的問題位於你是一個空字符串。
所以這是一個有點意外的錯誤消息。
所以我告訴你，雖然，問題是，我們還沒有建立一個過程，或者說我們還沒有建立在Heroku上的環境變量。
這樣做有幾個不同的方法，如果我們去Heroku的本身，我們可以做到這一點。
我可能會需要重新登錄這裡，我刷新頁面。
都能跟得上我沒有必要騙回。
這是我們的應用程序。
那麼，如果我們進去，我們進入設置，我相信它是。
然後繼續向下滾動，或去配置變量。
我們可以在一個變量補充。
因此，我們希望你的數據庫伯爵是巨大的字符串。
我複製它，然後單擊添加。
如果我們現在回去嘗試刷新頁面。
它的工作原理完全確定。
所以這是做的一種方式。
我向您展示如何去到Heroku和添加一個鍵值對數據庫您Erlass和鍵或變量的名稱的環境變量，然後一個值。
這是做它做的另一種方式的一種方法是通過您可以運行一個命令在命令行。
我們可以做到這一點就在這裡。
我有號
J.S.支持文檔在Heroku上開這條線Heroku的配置設置冒號，然後鍵入等於價值。
因此，如果我們想我不會真正做到這一點我就複製此第一位。
在我不打算打進入，但我只是想告訴你這將是Heroku的配置設置歌林，然後數據庫你是L等於然後我們不得不貼，你是的。
但是，我該怎麼做。
所以我還沒有提到另一件事是，有對使用環境變量另一個很好的理由是，有隱藏在那裡他們沒有接觸到不管它是開發人員，如果你把這個代碼了良好的樞紐。
我們不想讓我們的數據庫，你RL在這裡，當然，或者如果你已經知道我沒有數據庫你。
但是，這顯然不是一個真正的應用程序。
但是，如果這是即使它，我不希望我的公開數據，或者我的數據庫你出去大家誰看代碼的開源應用程序或我的代碼或者開源部分的實際應用。
因此，通過這裡有這一行蒙加爾開始連接處理過程的NV點數據庫，您AROW這不再是一個問題。
所以，這是所有開發者會看到或任何瀏覽上回家的代碼，他們將不得不建立自己的數據庫。
你們都在使用環境變量。
好。
因此，讓我們回顧一下我們所做的。
我們首先遇到的問題一個數據庫的開發和生產共享數據庫的問題，以解決這個問題。
我們建立了我們的數據庫URL環境變量本地雲九對同一個變量兩個不同的值。
然後我們訪問的變量使用ENVI數據庫，您IRL，我們連接到該進程的環境變量。
因此，我們有兩個結果。
有一件事我會提的是，這是值得設置一個默認值。
所以，讓我們說，我有點擰我的應用程序，如果我重新啟動計算機。
我不知道我這個重置工作空間在我的環境變量消失或我送這個給別人，我希望他們有我不知道，他們可以利用這只是為了一個默認的數據庫，這樣的代碼沒有按“T徹底打破，如果我沒有明確設置起來。
我能做的就是增加少許備份，以便我們將做一個變量，我們就調用它。
你們都是平等的，我們要做的過程中，你是真正的或數據庫啟動。
然後我們把一些你在那裡讓我們做什麼，你都已經ELLYARD失去了它。
你在這。
因此，這將只是一個備份。
如此反复這裡發生了什麼是它不是強制性的不改變的功能，但如果由於某種原因，我的環境變量得到搞砸了，或者根本不存在。
而不是破壞碼會發生什麼是，這您所有變量它會如果存在等於環境變量。
如果它雖然是一個空字符串，或者不存在，那麼這將是等於這個這只是我們的備份。
在這種情況下，在九霄雲外也有同樣的事情。
這真的不會再強制性的。
這只是一種很好的做法有萬一出事了。
不過說真的，我只是把它展示給你，因為這是很經常可以看到這一點。
好。
所以，那種長篇大論或接近這一沒有迂迴方式，但它全部歸結為，我們希望不同的數據庫的過程，在vidette數據庫您IRL是我們如何從一個節點的應用程序訪問環境變量的事實。
你想清楚，雖然環境變量不是一個節點事物或一個javascript的事情。
Ruby應用程序導軌都可以訪問的環境變量應用Python應用程序，並在所有他們看起來比較簡單的類似於此，它只是碰巧在節點你像Ruby等語言編寫的過程中六。
你會經常看到這樣的你知道ENV數據庫。
所以這是一個普遍的概念，它不是一個節點具體的東西，它是跨各種應用普遍為好。
你不只是使用這個數據庫的URL使用它任何時候你要。
它看起來像這裡一個錯字。
無論哪種方式，應該是localhost。
使用這個你想有你不同的環境開發與生產之間的不同信息的任何時間。
當你想隱藏或從別人的模糊信息和獲得幫助的情況下也可使用此。
所以，如果你有內部應用程序的您的PayPal或Strype信用卡處理API的信息，因為你需要它的代碼。
那麼，如果你想分享你目前是如何被你顯然不希望被推動這件事。
所以你可以做的是創造一個環境變量，並做類似的過程。
伊恩六死了超級敏感信息，這是一個辦法來解決想分享你的代碼的這個問題讓公眾，也不想分享你的超級敏感信息，其中有人可以把你的API密鑰並運行了成千上萬的法案和數千美元，實際上發生的一些大公司都是關於治安好多了。
所以亞馬遜舉例來說，如果你有你的亞馬遜API密鑰或AWOS信息獲取HOBE您的Amazon Web Services Web服務的信息，他們居然會知道，他們會向您發送一條消息，說你需要立即採取下來或將要關閉它。
有人可以收取成千上萬的美元來。
他們可以使用您或您的基本帳戶來運行了，他們不必支付巨額費用。
比較經常發生。
我聽說有我的這一問題，一些學生和承諾，但肯定我以前聽說過這一點。
好吧。
因此，處理羨慕的是我們如何獲取環境變量。
我們有兩個數據庫建立營地現在已經部署了兩個不同的數據庫。
他們不同意這是我們想要的任何信息。