Tamam.
Tekrar hoşgeldiniz.
Bu videoda son videoda bahsettiğim sorunu çözeceğiz, şu
anda şu anda yerel bulut dokuz geliştirme ortamımız ve Heroku'daki üretim ortamımız arasında
bir veritabanı kullanıyoruz.
Dağıttığımız kod, test alanımız olan aynı veritabanını kullanıyor ve bu gerçekten harika bir
fikir değil.
olmadıklarını bildiğiniz bir veritabanı bulundurmak istemiyoruz. büyük uygulamanın ana veritabanımızın tüm kullanıcılarımızla konuşlandırılması.
İşler iyi işliyor, kodumuzun kırılmış olması veya bu yolu kullanarak ulaşamayacağımız anlamında bir sorun değil,
ancak gerçekten iyi bir uygulama değil, çünkü elimizde bir kod olup
Her şeyi test etmek, etrafı dolandırmak ve yanlışlıkla veritabanındaki girdileri silmek veya
tüm veritabanını silmekte yeni özellikler eklemek istemiyoruz.
Geliştirme ortamımızda.
Yani onları ayrı tutmak istiyorsun.
Ve sadece şimdi neler olduğumuzu göstermek için.
Hatırladıklarımız, yaptıklarımız yerel ana makineler kullanmak yerine kodumuzu güncellediğimizdir.
Bulunduğunuz ya da sahip olduğunuz her veritabanını 10 veya başka bir yerde besleyemezsiniz ancak bulutun yerel versiyonu
9 biz Mangu laboratuarı olarak güncelledik.
Ve bu bizim Mongo laboratuarı örneğidir ve şu anda yerel olarak çalışmakta olanla aynı.
Ve Heroku'da bu yüzden her ikisini de yenileyeyim.
Bu, bir rodeo plajınız olduğunu ve elbette ki bağlı olduklarını kanıtlamak için tekrar rodeo plajımız
olduğunu görebileceğiniz Heroku'yu kullanıyor.
Şuraya yeni bir kamp yeri ekleyelim.
Bunun adı Kirby koy olacak.
Bu görüntüyü burada kullanacağım, ki bu birkaç gece önce tamamen utanmaz fişe attım.
Bu konuda elinden bir şey gelmez.
Dolayısıyla, yapıştırmayı buraya kopyalayıp falan filan otomatik tamamlama yazacağım.
Teşekkür ederim.
Chrome gönder'i tıklayın.
Pekala, bunu burada Heroku'da bulacağız.
Ve yeniliyorum.
Burada yerel olarak oluşturulan aynı Kirby koduna sahibim.
Bu, felaket olayları hakkında bile değil.
Bir geliştirici kazayla tüm veritabanını silebilir.
Bir bakalım.
Diyelim ki silmek yol çalışırken silme olduğunu bilmek istediğim bir özelliği test etmek istedim.
Buraya girersem ve oturum açmadığım bir şeyi sildiysem ancak bunu silmeyi tercih edersem,
bu da üretimden silinir; bu, hiç kimsenin gerçek verilerini silemeyeceğim
anlamına gelir.
Dolayısıyla, ayrı veritabanlarına sahip olmak gerçekten iyi bir fikirdir.
Dolayısıyla bu sorunu gidermenin bir yolu yalnızca bulut 9'a dönmek ve bulutta dokuz geçiş yapmaktır.
Peki şimdi burayı kullanıyoruz, böylece yerel localhost sürümünü yeniden kaydetmek için sunucuyu şimdi ve
şimdi bulutta yeniden başlatmayı 9 5 yenilemek için tekrar kullanıyoruz.
Eski sürümü veya kullandıklarımızı yerel sürüme göre kullandığımızın ve Heroku'nun hala
Monga laboratuarı örneğini kullandığımızı göreceksiniz, çünkü şu anda senkronize değiller.
Bulut 9'da yerel olarak yaptığımız değişikliklerimiz var, onu ona zorlamadık.
Ve bu iyi.
şey. Çünkü yeni bir özellik eklediklerini söylemek istiyorum, C SS'yi değiştirdim ve onu Heroku'da güncellemek istiyorum.
Bu işe yarayacak, ancak oldukça can sıkıcı bir
Öyleyse, bildiğim veri tabanım hakkında ne yapacağımı bulmam gerekecek.
Bu açıklama ile ilgili yorum yapmam gerekecek veya birinin kaydetmesini ve komuta koyulmasını uncomment üzerinde yeniden yapacağım, hepsini Heroku'ya
ittirin ve eğer yerel olarak tekrar yeni bir özellik eklemek veya bir şeyler test etmek
istersem.
Bunu yorumlayıp yorumlamıyorum ve bu sadece iyi bir çözüm değil aslında.
Ancak alabileceğimiz başka bir çözüm veya başka bir yaklaşım var.
eğer üretim aşamasındayız ya da veritabanını ayarlarsak bu işe başlayacağınızı söyleyen bazı kodlar yazmaktır.
Ve temel olarak yapacağımız şey,
Aksi halde bunu burda olacak şekilde ayarlayın.
Şimdi aslında bir if deyimi olmayacak.
Ve biz teknik olarak eğer biz içerideysek üretime girip girmediğimizi ya da Heroku'yu kullanıp kullanmadığımızı kontrol etmiyoruz.
Biraz farklı.
Ortam değişkenleri denilen şeylerden faydalanmak için ne yapacağız.
Bu yüzden onları daha önce gördük.
Express app işlemi, EMV IP'yi port işlemesine gıpta ediyorsa bu küçük çizgi.
İncelemelerin ve her
Peki bunun anlamı ne burada.
Ve ben kısa bir süre bu konuyu gözden geçirdim ama sanırım artık kemer altında daha fazla tecrübeye sahip olduğun
için biraz daha mantıklı olacaksın.
Bunun anlamı, bu kodun çalıştırıldığı ortamdır.
Dolayısıyla, bulutta dokuzuncu portu gıpta ettiğiniz süreç, muhtemelen Roku'nun o noktalı portu
işlemekten daha farklı olabilir, muhtemelen IP kesinlikle.
çalıştırdıkları ortamdan yola çıkarak değişen sabit kodlu şeyler olmayan değişkenler ekleme yollarıdır.
Dolayısıyla bunlar,
Yani 80 80 gibi bir şey koymuş olabiliriz.
Ancak elbette ki kodlanmış.
Bu dinamik değil.
Bu, çevreye yanıt veren değişkenlere sahip olmamızı sağlar ve düğümde javascript aslında yalnızca bir
düğüm olacaktır.
Onlara her zaman erişen süreç D-NV ile başlarlar.
Ve sonra değişkenin adı.
Dolayısıyla burada yapacağımız şey Yoro veritabanını arayacak bir çevre değişkenine sahipken,
Heroku'da veritabanını ayarlamak için gidiyoruz, burada bu uzun şey olabilir ve sonra tüm
yapmanız gereken
temelde işlem yazın olduğunuz veri tabanı.
Ve bu, verilen çevre için doğru URL'yi ifade eder.
Ve sonra aynı şeyi burada yapacağız.
Biz de bulut üzerinde dokuz veritabanı size Arel Mongar D-B iki nokta üst üste o localhost o Campfield 10 olabilir
eğik ayarlanır.
Yine bu düşünceyle, size nasıl yapılacağını göstermediğim bir çevre değişkeni yaratabiliriz.
Bu onlara nasıl eriştiğinizdir.
Ancak bunun bu uygulamanın dışından geldiğini unutmayın.
Bu, gerçek uygulamadan veya gerçek ortamdan, sunucumuzun kodunu çalıştırdığımız
sunucudan gelmektedir.
nasıl yaptığımızı göstermek için, buraya kapanışa geçerek başlayacağım ve bir tür dışa
aktarma yeni bir komut olduğunda ortamdaki komut satırında yeni bir çevre değişkeni
yaratacağım, genelde sözleşmenin tüm karakterlerde yapması gereken çevre değişkenini yazacağım.
Bu işi
Burada görebileceğiniz gibi IP portu.
Böylece veri tabanı yapacağız.
Hepiniz eşittiriz ve bulut dokuz örneğimize çalıştırmak istediğimiz seviyeye eşit sıfırlamaya başlayacağız, çünkü
hepinizin veritabanına eşit olmasını istiyoruz.
Bunun gibi ve isabet edip
etmediğini kontrol etmek için enter tuşuna basın.
Doğru burada yapmaya geldim.
Bu günlük işlemini iptal edin.
Babam gıpta eder.
Ve bildiğiniz veri tabanıyla eşleşmesi gerekiyor.
Ve bu Mongar D-B Kolonu'nun Canvey 10'un yerel barınağı olduğunu söylersek, tükenmiş veya
basılmış olarak tanıdığım geliştirme veritabanını başarılı bir şekilde kurduğumuzu biliyoruz.
Diyelim ne düğüm olur görelim.
Evet, oraya çıktığını görüyoruz.
Localhost'un çıktısını asla söylemedim.
Sen yapabilirsin.
Ortam değişken veritabanı olduğunu söyledim.
Şimdi tek yapmamız gereken, Mangeshkar'ın NVI veritabanını işlemek için bağlandığını
söylüyor olması.
Siz IRA ve sonra Heroku'da bu Mongo lab devi olduğunuzu bildiğiniz güncelleme veritabanına ihtiyacımız var Hepiniz dize
ancak bunun sadece Heroku'da olmasını istiyoruz.
Onu yalnız bulut üzerinde bırakmak istiyoruz.
Öyleyse işe yaradığından emin olalım, böylece yeniden başlatmayı vocalise edelim.
Harika.
Şimdi burada yenileme doğru sürümüne gidelim ve biz hala Heroku'ya herhangi bir kod basmadığımızdan
elbette değişmemiş olan Heroku yerel kodunu alıyoruz.
Şimdi şunu kaydedersek ve eklersek ve
taahhüt edersek, IRL'yi
güncellersin Heroku M.'yi zorlarsak. Heroku sürümünü hemen denersek ve en
azından bu biterse ben bu sayfayı yenilemeyi denersem bir hata yapacağım,
çünkü Heroku işlem çalışması ve vidette veritabanını bulabilecek sunuculardır. biliyorsun çünkü ayarlanmadı.
Dolayısıyla, yenilemenin biraz zaman alabileceğini
ve uygulama hatası almaları gerektiğini size göstermek için oraya giderken gidiyoruz.
Gerçekten ne olduğunu öğrenmek istiyorsanız tekrar uygulama hatası.
Bu Heroku günlükleri ve buradan görebileceğiniz hata mesajının ne kadar faydalı olduğunu
bilmiyorum dürüstçe çalışacağız.
Bakalım.
Bu, tam olarak ne umduğunu
size söylemeyen mesajlardan biri olabilir, ancak bize Mongar D-B'nin bir hata olduğunu söylüyor.
Yesso, açıkça, bu veritabanının bir problem
olduğunu belirtmemektedir, çünkü gerçekte olan şey, boşluklu bir dize bağlamaya çalışmaktır ve bu da büyük olasılıkla
teknik olarak bir problem değildir, aksine veritabanı yoktur Bulunduğunuz yerde boş bir dize.
Bu tür bir beklenmedik hata mesajı.
Bununla birlikte, sorun şu ki,
bir süreç oluşturmadığımız ya da Heroku'da çevre değişkenini ayarlamadığımız yönündedir.
Bunu yapmak için, Heroku'nun kendisine gidersek bunu yapabileceğimiz birkaç farklı yol var.
Muhtemelen buraya tekrar giriş yapmam gerekecek, sayfayı yenileyeyim.
Hayır, geri yalan söylemek zorunda kalmadım.
İşte bizim uygulamanız.
Peki gireceğiz ve ayarlara geçersek öyle olduğuna inanıyorum.
Sonra kaydırma yapmaya devam edin veya yapılandırma değişkenlerine gidin.
Burada bir değişken ekleyebiliriz.
Dolayısıyla, Earl'ün o dev dizgeci olması için veritabanı istiyoruz.
Kopyaladım ve Ekle'ye tıkladım.
Ve eğer geri dönersek sayfayı yenilemeyi deneyin.
Tamamen sorunsuz çalışıyor.
Yani bunu yapmanın bir yolu.
Heroku'ya nasıl devam edeceğinizi ve
Erlass'ın anahtar değer çifti veritabanına eklediğinizi ve anahtarın veya değişkenin adının çevre değişkeni ve ardından bir değer eklediğini size gösterdim.
Bunu yapmanın bir başka yoludur, bunu komut satırından yaparak bir komut çalıştırabilirsiniz.
Bunu burada yapabiliriz.
Hayır diyeceğim.
J. S. Heroku'nun bu satırındaki Heroku yapılandırma iki nokta üstüste setini açan destek dokümanları açın ve daha sonra değer eşittir.
Bu yüzden ilk biti kopyalayacağım, istersek bunu yapmayacağım.
Girişe girmeyeceğim ama sana yalnızca Heroku yapılandırması Kolin ayarlayıp
sonra l eşdeğer olduğunu gösteren sana göstermek istiyorum ve o zaman yapıştırdığına karar verdik.
Ama bunu ben yapacağım.
Bahsetmediğim başka bir
şey, çevre değişkenlerini kullanmak için bir başka iyi neden var;
gizli olan bu kodları, iyi bir göbeğe koyarsanız, geliştiriciler ne olursa olsun maruz kalmıyorsunuz.
olmadığını biliyorsanız.
Veritabanımızı burada derhal elinizin altında tutmak istemiyoruz ya da hiç veri tabanımız
Ancak bu açık bir şekilde gerçek bir uygulama değil.
Ancak bu gerçek bir uygulama
olsaydı, açık kaynak kodlu bir uygulama veya kodumun bir kısmı veya açık kaynak
olsa bile verilerimi veya veritabanımı göstermek istemiyorum, kodu görünen herkese uyguluyorsundur.
Bu yüzden
bu satırı Mongar'a bağlayarak, NV dot veritabanını sizinle artık bağlantı oluşturmayan bir süreç haline getirin.
kurması gerekecekti.
Böylece, bir geliştiricinin göreceği veya koda göz atan herkesin eve dönmesi ve kendi veritabanını
Hepiniz ortam değişkenlerini kullanıyorsunuz.
TAMAM.
O zaman yaptıklarımızı özetleyelim.
Biz sorunu bir
veritabanının geliştirilmesi ve üretimi için sorunu düzeltmek için paylaşılan bir veritabanıyla başlattık.
Veritabanı URL
ortam değişkenlerini bulut dokuzunda yerel olarak ve aynı değişken için iki farklı değere kurduk.
Ve sonra bu
değişkene çevre değişkenini ENVI veritabanından edindiğiniz süreci kullanarak eriştik ve IRL'ye bağlandık.
Dolayısıyla iki sonucumuz var.
Bahsedeceğim bir şey, bir varsayılan değer oluşturmanın değerinde olmasıdır.
Diyelim ki, bilgisayarımı yeniden başlattığımda bir şekilde uygulamalarımı mahvettiğimi varsayalım.
Ortam değişkenimde bu çalışma alanını sıfırladığımı bilmiyorum ya da
bunu birine gönderiyorum ve kodun tamamlanamayacağı bir varsayılan veritabanı bilmediğimden
bunu istemek istiyorum Bunu açıkça ayarlamadıysam tamamen mola olurum.
Yapabileceğim, küçük bir yedekleme ekleyerek bir değişken yapacağım ve onu sadece çağıracağız.
Hepiniz eşittir ve gerçekte olduğunuz veritabanında başlatılan işlemi yapacağız.
Ve sonra bazılarını dışarıda bırakacağız, o halde yapman gereken şeyleri yapalım, ELLYARD zaten kaybetti.
İşte burdasın.
Bu sadece bir yedek olacak.
Yani burada ne olup bittiğini
zorunlu değil işlevselliğini değiştirmek değil ama nedense benim ortam değişkeni berbat var ya da yoktu.
var ise çevre değişkenine eşit olacak demektir.
Kodu koparmak yerine ne olacağı, bunun hepiniz değişkendir ve
Boş bir dize olsa ya da
yoksa, o zaman bizim yedekimiz olana eşit olacak demektir.
Bu durumda bulutun dokuzunda da aynı şey var.
Bu gerçekten zorunlu değil.
Bir şeylerin ters gitmesi ihtimaline karşı iyi bir uygulama.
Ama gerçekten sana gösteriyorum, çünkü bunu da görmek çok yaygın.
TAMAM.
Öylesine
nazikçe uzun sarımlı ya da buna yaklaşmanın hiçbir yolu yok ama hepsi de, farklı veri
tabanları işlemlerini vidette veritabanında kullanmak istediğimiz gerçeğine inanıyor. IRL, bir düğüm uygulamasından çevre değişkenlerine nasıl eriştiğimiz.
Ortam değişkenleri bir düğüm veya bir javascript şey değil olsa da bunu açıkça belirtmek istersiniz.
Ruby uygulamaları rails uygulamaları Python uygulamaları, hepsi çevre
değişkenlerine erişebilir ve nispeten basit görünüyorlar, sadece Ruby gibi
diğer dillerde vi'da işlem yaptığınız düğümde olurlar.
Çoğu zaman bildiğiniz bir ENV veritabanı gibi bir şey göreceksiniz.
Bu, evrensel bir kavramdır ve düğüme
özgü bir şey değildir ve her tür uygulamada evrenseldir.
Bunu sadece veritabanı URL'leri için kullanmazsanız istediğiniz zaman kullanabilirsiniz.
Buraya bir yazım hatası gibi görünüyor.
Her iki durumda da localhost olmalıdır.
Farklı ortam geliştirme veya
üretiminiz arasında farklı bilgi sahibi olmak istediğinizde bunu kullanın.
Ayrıca, bir başkasından bilgi gizlemek veya gizlemek ve örneğin yardım almak istediğiniz zaman da kullanabilirsiniz.
Dolayısıyla, kodunuz için gerekli olduğu için uygulamanızın içinde
API bilgisini işleme alan Paypal veya Strype kredi kartınız varsa.
Eh, mevcut hediye paylaşmak isterseniz, bunu açıkçası bastırmak istemiyorsunuz.
Yapabileceğiniz şey, bir ortam değişkeni oluşturmak ve süreç gibi bir şey yapmak.
Ian VI, süper hassas bilgiler vefat etti ve bu, kodunuzu paylaşmak
istemekle ilgili bu sorunun üstesinden gelmenin bir yoludur; bunu herkesin bilgisine sunmakla kalmaz aynı zamanda birisinin API anahtarınızı alabileceği
süper hassas bilgileri paylaşmamı istemediğini ve bir binlerce faturayı çalıştırdığını ve Aslında
bazı büyük şirketlerin yaşadığı binlerce dolar bunun polisliği konusunda çok daha iyi.
Yani Amazon, örneğin, Amazon API anahtarınız veya AWOS bilgileriniz
varsa Amazon Web Hizmetleri web hizmetlerinizdeki bilgi almak için hobe'yu biliyorlar ve size derhal bu mesajı
almayı düşündüğünüzü veya devre dışı bırakacağınızı söyleyen bir mesaj gönderecekler. o.
Birisi bunun için binlerce ila bin dolar talep edebilir.
Ödemeleri gereken büyük bir faturayı kullanmak için sizi ya da temelde hesabınızı kullanabilirler.
Oldukça sık oluyor.
Bu soruna, benim ve
sözümde olan bazı öğrencilerin duydum ama kesinlikle daha önce bunu duymuştum.
Tamam.
Yani kıskançlık süreci, çevre değişkenlerine nasıl eriştiğimizdir.
İki veritabanı kurulmuş kampımız şimdi iki farklı veri tabanı oluşturdu.
İstediğimiz bilgileri paylaşmıyorlar.
müthiş