“Kaynak veritabanı tanınabilir bir Drupal sürümü içermiyor.”


9

Yerel Ubuntu masaüstüme iki Drupal site kurdum 15.10 Apache2 (2.4.12) ortamı: Biri Drupal 8'in yeni bir yüklemesi ve ikincisi Drupal 7 ile oluşturulmuş mevcut bir çalışma sitesinin kopyasıdır (çoğunlukla çekirdek modüllerdir) sayfalar aracılığıyla çok alçakgönüllü). Her iki site de her yerde sorunsuz çalışıyor.

Amacım ilk ve en önemlisi Drupal 7 sitesini Drupal 8'e yükseltmek. Aynı dilleri yapılandırmak gibi tüm ön aşamaları yaptım, modüller aracılığıyla minimum tutun (D7 sitesinde Yükseltmeden sonra kolayca geri getirebileceğim tüm modülleri kaldırarak) ), aynı modüllerin her iki siteye de yüklendiğinden emin olun ve şimdi Drupal 7 sitemi taze Drupal 8'e "Transcend" (umarım iyi bir ifade) istiyorum.

Amacımı gerçekleştirmek için Drupal Upgrade modülünü Drupal 8 siteme kurdum, localhost / sitename / yükseltmeye gittim ve Drupal 7 sitesinin tüm ayrıntılarını doldurdum.

"Yükseltmeyi gözden geçir" düğmesini tıkladığımda hatayı aldım:

Kaynak veritabanı tanınabilir bir Drupal sürümü içermiyor.

Bu hatayı tam bir cümle ("Hata") olarak araştırdım ve çok az sonuç buldum; Birçoğu bana henüz edinmiş olduğum bir PHP programlama bilgisi gerektiriyor gibi görünüyor, bu yüzden hatanın bir hatadan (özellikle bu modül hala ağır geliştirme aşamasında olduğundan) veya hatamdan kaynaklanıp kaynaklanmadığını belirleyemiyorum bu modülün kavramını / işlevselliğini anlamak.

  1. D8 Drupal yükseltme modülünün sağladığım D7 veritabanını "beğenmemesi" ne gibi nedenler var? Özellikle Drupal 7 sitesi hem çevrimiçi hem de yerel olarak iyi çalışıyor.

  2. Herhangi bir nedenden dolayı yükseltme mümkün değilse taşıma, yükseltme için iyi bir alternatif olabilir mi? Eğer öyleyse, göç için aklınıza gelebilecek en iyi çözüm nedir?

resim açıklamasını buraya girin

/Var/www/html/benia/modules/migrate_upgrade/src/MigrationCreationTrait.php adresine gittim ve yaptım:

-- return $version_string ? substr($version_string, 0, 1) : FALSE;

++ return 7;
++ return $version_string ? substr($version_string, 0, 1) : FALSE;

Daha sonra ekranın üst kısmında bu hatayı aldım.

resim açıklamasını buraya girin


1
Görebildiğim tek şey, bu veritabanının Drupal 7 yüklemesini içermesi gibi, hatanın dediği gibi olmaması. Yapılandırmanızda bir şeyler yanlış olmalı ya da beklediğiniz yere aktarmadınız.
Berdir

Neden DB'yi sevmiyor? Bu DB ile D7 sitesi herhangi bir

1
Oh ve @Berdir "yapılandırma" ile D8 sitesinde Drupal Yükseltme modülündeki conf demek istiyorsun? İhtiyacım olan her yerde doldurduğum detaylardan emindim, bir şey kaçırıp kaçırmadığımı kontrol edeceğim ... Bir şeyi kaçırdığımı mı düşünüyorsun? ...

Bunun yerine localhost yerine 127.0.0.1'i denediniz mi? (Belki de şu anki yükseltme yapılandırmanızla bir veritabanına gerçekten
ulaşamıyor

Üzgünüm sanırım anladım ... Lütfen yazdıklarını tekrar söyleyebilir misin? Çok teşekkürler!!!

Yanıtlar:


4

Bu aşamada, simple7'den 8'e yükseltme seçeneği olduğunu düşünmüyorum . Sürüm notunda görebileceğiniz gibi:

Hazır olduğunuzda, Drupal 8 çekirdeği, mevcut Drupal 7 ve 6 sitelerini doğrudan Drupal 8'e güncellemek için Migrate modülünü de içerir. Göç, Drupal 8.0.0'da "deneysel" olarak işaretlenmiştir, ancak önümüzdeki sürümlerde tam olarak desteklenecektir. https://www.drupal.org/news/drupal-8.0.0-released

Sahnenin arkasında biraz teknik: 7'den 8'e kadar sürümde, site (düğüm, varlık, izin, görünümler ...) oluştururken aynı konsepti koruyorlar, ancak çekirdek değil. Şunu söyleyebilirim: her şeyi OOP, Symfony bileşeni, mimari olarak değiştirdiler ... Yani upgradedrupal sitenize doğrudan iyi sürümden 8.0'a kadar bir yol yok, yapmanız gerekiyor migrate. migratingSürecin nasıl görünmesi gerektiği aşağıda açıklanmıştır :

  1. Siteyi aynı işlevselliğe sahip d7 sitenize yeniden oluşturun.
  2. Temayı yeniden oluşturun (dal şablonu kullanarak)
  3. İçeriği taşı

Bu sürecin maliyeti (maalesef) yeni bir site veya daha fazlasını yeniden oluşturmak için aynıdır. 3 numarayla, Aşama 2'nin bu makalesine bir göz atın: https://www.phase2technology.com/blog/upgrading-to-a-drupal-8-site/


Drupal 8'de elle yeniden yazılan bir site oluşturmaya başladım ... D7'de kullandığım modüllerin çoğunun çekirdeğe girmesi gerçekten iyi; Umarım Drupal 9'a geçiş yapacağım zaman, geçiş teknolojisi farklı bağlamlarda, Düğüm sayfa içi veri ve meta verileri, düğüm yönlendirmeleri, dosyalar, Görünümler, Paneller, her şey mümkün olduğunca kendi kendine ... süreci farklı aşamalara bölmek (istediğiniz zaman her aşamadan başlayabildiğinizde) umduğum bir şeydir ...

Uygulamayı özür dilerim: Cevabımı, büyük olasılıkla neler olduğuna ilişkin ayrıntılı ayrıntılarla aşağıda gönderdim, lütfen bakın. Ödül elbette seninle.

2

Hata mesajınız, http://cgit.drupalcode.org/migrate_upgrade/tree/src/MigrationCreationTrait.php#n40 adresindeki "Drupal Upgrade" modülünün kodundaki dizeyle ( https: / /www.drupal.org/project/migrate_upgrade ).

Bunun bir hata değil, bunun yerine "istisna atıldığını" gösterir. Bu kodun önceki 3 satırına bakarak, sadece bağlantı kurma bir sorun olduğunu düşünüyorum.

Belki bu da yardımcı olur:

  • Sayı https://www.drupal.org/node/2628440 (3 numaralı yorum) ile ilgili bir alıntı :

    Kaynak veritabanının geçerli bir Drupal veritabanı olup olmadığını denetlemek ve veritabanının sürümünü belirlemek için yükseltme işlemi 'sistem' tablosuna bakar - bu tablo formda belirttiğiniz veritabanında mevcut mu? Bu veritabanındaki Drupal yüklemesi ön ekli mi (ve öyleyse, öneki formun "Gelişmiş seçenekler" bölümüne girdiniz)? ".

  • Aynı sayıdaki 4 numaralı yorumu izledi: "Tabloların önekinin sağlanması sorunu çözdü.".

Ve elbette, benjy'den (teşekkür ederim!) Yorum da karşılaştığınız gerçek hata hakkında daha fazla ayrıntı elde etmenize yardımcı olacaktır, yani:

$ e-> getException () yazdırabilirsiniz burada cgit.drupalcode.org/migrate_upgrade/tree/src/… ve sonra PDO hatasını göreceksiniz

Bağlantı yoluyla gösterilen kodda 122 ve 123 satırları arasına bu tür bir baskı ekleyebilirsiniz.


Soruda da bahsettiğim gibi, bu geniş PHP kodundan sorunun ne olduğunu anlamak için PHP bilgisine sahip değilim ... Soruyu düzenleyebilir ve basit bir şekilde bu "İstisna atılan" nedir ve ne olduğunu açıklayabilir misiniz? üstesinden gelmek için basamaklı yol? Lütfen olabildiğince basit, ben sadece PHP tadına başlıyorum.

@benos Bu, büyük olasılıkla çok önemsiz bir şeyin taşıma ayarlarınızda yanlış yapılandırıldığı anlamına gelir. Yazım hatası, yanlış şifre, yanlış URL. Bunun gibi bir şey.
leymannx

@benos, $ e-> getException () yazdırabilirsiniz burada cgit.drupalcode.org/migrate_upgrade/tree/src/… ve sonra PDO hatası göreceksiniz.
benjy

@leymannx Yerel olarak 2 DB oluşturduysam (biri D8 için D7 için bir tane), yükseltmek istediğim çevrimiçi sitenin yalnızca D7'den biri tam olarak aynı ayrıntılara sahip olmalı, değil mi?

@leymannx Her şeyi yeniden yarattım. Yerel D7 verileri çevrimiçi D7 sitesinde tam olarak aynıdır: Sitenin klasörü aynıdır; DB adı ve Kullanıcı adı aynıdır ve şifreler aynıdır; Ayrıca öneki ekledim ve her şey yerinde gibi görünse de hala aynı hatayı alıyorum.

0

Kod tabanını {system} okumasını atlamaya zorladığınız anda, bir sonraki veritabanı tablosunu {field_config_instance} bulamamakla ölür. Başka bir deyişle: D7 veritabanınızı okumuyor. Belki D8'i okumaya çalışır, belki tamamen başka bir şey, nasıl bilebiliriz? Büyük olasılıkla yanlış DB yapılandırması giriyorsunuz (diyelim ki, iki site farklı sunucularda mysql sunucusu her ikisinde de localhost olmakla birlikte localhost aynı sunucu değil). Migrate Upgrade katkıda bulunan modülünü ve çekirdek geçiş modülü kodunu her ikisini de kontrol ettim ve her ikisi de parça parça değil, tüm veritabanı ayarları dizisini işlediğinden önekle ilgili bir hata olması son derece şaşırtıcı olurdu.

Bunu nasıl düzeltebileceğiniz hakkında bilgi edinmeden söylemek mümkün değildir. Afedersiniz. Yapabilseydim kapatmak için oy kullanırdım ama bir ödül olduğu için yapamam. Size yardım edemeyiz ve bu soru başkalarına yardım etmeyecektir. Mümkün olan tek yardım şudur: Drupal 7 ayarlar dosyanızı okuyun ve anlayın ve Yükseltme Modülüne doğru kimlik bilgilerini verin (Çok sayıda yorum zaten bunun hiçbir yere gitmediğini gösteriyor.)

Olası bir uzun vadeli çözüm, katkıda bulunanlar modülünde insanların ayarlarını yükleyebileceği bir özellik içerir. Php ve sonra bunu kullanmayı deneyebiliriz. Bu son derece kırılgan ama sanırım bir denemeye değer. Birisi kodlamak için zamana sahip olduğunda ...

İnsanların neden bu kadar ağır davrandığını bilmiyorum. Aynı sorunu yaşayan başka biri var mı?


0

Bunu gönderdiğimden beri çok zaman geçti ama sanırım şimdi sorunun ne olduğunu biliyorum:

Ben (o zaman) "çok temel" olduğunu düşündüm 2-3 modül yüklü bıraktı, bu yüzden tüm çekirdek modüller gibi bir göç yolu var emin oldu.

Doğru hatırlamıyorsam bunlar şunlardı: Metatag ve Yönlendirme (D7 Globalredirect & Redirect'ten Drupal 8'de sadece Redirect'e geçersiniz).

Bunları sadece D7 sitesinde bırakmadım, aynı zamanda D8'e de yükledim, bu yüzden sitemin sürümlerinden hiçbiri gerektiği gibi sadece çekirdek değildi.

Bu benim ilk göçümdü ve bu hatayı projeye birinci sınıf öğrencisi olarak yaptım. Bu modüllerin bir göç yoluna sahip olmayacağına "inanamıyorum" diye gerçekten ikna olmuştum (ve bunu düşündüğünüzde gerçekten de olması gerekirdi), ama sonra gerçekten sadece çekirdek modüllerin ve her şeyin aksi halde özel veya katkıda bulunan bir taşıma yolu olmalıdır.

Bildiğiniz gibi --- Bunlar ve diğer modüller, bu geçiş yolu ile yamalarıyla kullanabileceğiniz geçiş yollarına sahiptir (yolu modülle "enjekte edersiniz").

Her neyse, o zamanlar benim için durum böyle değildi ve sistemle birlikte geldiğinden emindim ...

Acı çekiyordum ve yukarıdaki göçün başarısız olmasının tek nedeni bana öyle geliyor; Hatta bu varsayımı, yaklaşık 2 ay önce son başarılı göçümden önce yaptığım küçük bir deneyle pekiştirdim.


0

Bir kez bu hata mesajını aldım. "Drupal_" tarafından ayarlanan $ db_prefix olduğu ortaya çıktı. Bunu gelişmiş seçeneklere koymalısınız.

Saygılarımızla, Carlos Aleman

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.