"Sumber database tidak mengandung versi Drupal yang dikenali."

9

Saya telah menginstal dua situs Drupal di desktop Ubuntu lokal saya 15.10 Apache2 (2.4.12) lingkungan: Satu adalah instalasi baru dari Drupal 8 dan yang kedua adalah salinan dari situs kerja yang ada yang dibangun dengan Drupal 7 (yang sebagian besar adalah modul inti berbasis, sangat rendah hati melalui halaman). Kedua situs berfungsi dengan baik tanpa masalah, di mana saja.

Tujuan saya adalah yang pertama dan terpenting meningkatkan situs Drupal 7 ke Drupal 8. Saya melakukan semua tahap awal seperti mengkonfigurasi bahasa yang sama, Tetap seminimal mungkin dengan modul (menghapus modul apa pun di situs D7 yang dapat dengan mudah saya bawa kembali setelah Peningkatan) ), memastikan modul yang sama dipasang di kedua situs, dll, dan sekarang saya hanya ingin "Transcend" (harap ini ungkapan yang bagus) situs Drupal 7 saya ke Drupal 8 yang baru.

Untuk mencapai tujuan saya, saya telah menginstal modul Upgrade Drupal di situs Drupal 8 saya, pergi ke localhost / sitename / upgrade, dan mengisi semua detail dari situs Drupal 7.

Ketika saya mengklik tombol "Tinjau peningkatan" saya mendapat kesalahan:

Sumber basis data tidak mengandung versi Drupal yang dikenali.

Saya telah meng-google error ini sebagai frasa persis ("Kesalahan") dan menemukan sangat sedikit hasil; Sebagian besar dari mereka tampaknya membutuhkan pengetahuan pemrograman PHP yang belum saya peroleh, jadi saya tidak dapat menentukan apakah kesalahan itu disebabkan oleh bug (terutama karena modul ini masih dalam pengembangan) atau karena kesalahan saya dalam memahami konsep \ fungsionalitas modul ini.

  1. Apa alasannya mengapa modul upgrade D8 Drupal tidak "menyukai" database D7 yang saya berikan? Terutama ketika situs Drupal 7 bekerja dengan baik baik online maupun lokal.

  2. Apakah migrasi akan menjadi alternatif yang layak untuk peningkatan, jika peningkatan tidak dimungkinkan karena alasan apa pun? Jika demikian, apa solusi paling sederhana terbaik yang dapat Anda pikirkan untuk migrasi?

masukkan deskripsi gambar di sini

Saya pergi ke /var/www/html/benia/modules/migrate_upgrade/src/MigrationCreationTrait.php dan melakukan:

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

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

Daripada mendapatkan kesalahan ini di bagian atas layar.

masukkan deskripsi gambar di sini

kiamlaluno
sumber
1
Yang bisa saya lihat adalah bahwa itu tidak seperti database yang berisi instalasi Drupal 7, seperti yang dikatakan kesalahan. Sesuatu harus salah dalam konfigurasi Anda atau Anda tidak mengimpornya ke tempat yang Anda harapkan.
Berdir
Mengapa tidak menyukai DB? Situs D7 dengan DB ini berfungsi cukup baik tanpa masalah ...
1
Oh dan @Berdir dengan "konfigurasi" yang Anda maksud dengan conf di modul Upgrade Drupal di situs D8? Saya yakin rincian yang saya isi di tempat yang saya butuhkan, saya akan memeriksa apakah saya melewatkan sesuatu ... Anda pikir saya melewatkan sesuatu? ...
Sudahkah Anda mencoba 127.0.0.1 bukan localhost? (Seperti itu mungkin benar-benar tidak sampai ke database sama sekali dengan konfigurasi upgrade Anda saat ini)
leymannx
Maaf saya pikir saya benar-benar mengerti ... Bisakah Anda ulangi apa yang Anda tulis? Terimakasih banyak!!!

Jawaban:

4

Pada tahap ini, saya tidak berpikir ada simpleopsi untuk meningkatkan dari 7 menjadi 8. Seperti yang Anda lihat pada catatan rilis:

Setelah Anda siap, inti Drupal 8 juga menyertakan modul Migrasi untuk memperbarui situs Drupal 7 dan 6 yang ada ke Drupal 8 secara langsung. Migrasi ditandai "eksperimental" di Drupal 8.0.0, tetapi akan didukung sepenuhnya dalam rilis yang akan datang. https://www.drupal.org/news/drupal-8.0.0-released

Sedikit teknis di belakang layar: Dari versi 7 hingga 8, mereka mempertahankan konsep yang sama ketika membangun situs (seperti simpul, entitas, izin, tampilan ...) tetapi bukan intinya. Saya akan mengatakan: mereka mengubah segalanya menjadi OOP, komponen Symfony, arsitektur ... Jadi tidak ada cara untuk upgradesitus drupal Anda langsung dari versi yang layak menjadi 8.0, Anda harus migrate. Beginilah tampilan migratingprosesnya:

  1. Buat kembali situs dengan fungsi yang sama dengan situs d7 Anda.
  2. Buat kembali tema (menggunakan templat ranting)
  3. Migrasikan konten lewat

Biaya untuk proses ini (sayangnya) sama untuk membuat ulang situs baru atau lebih. Dengan no 3, lihat artikel ini pada Fase 2: https://www.phase2technology.com/blog/upgrading-to-a-drupal-8-site/

trongdq
sumber
Saya sudah mulai secara manual membangun situs yang ditulis ulang di Drupal 8 ... Bagus memang banyak modul yang saya gunakan di D7 masuk ke inti; Saya berharap bahwa pada saat ini ketika saya akan bermigrasi ke Drupal 9, teknologi migrasi akan mencapai keadaan di mana ia bisa lebih parsial, dilakukan dalam konteks yang berbeda, Node pada halaman data & meta data, pengalihan node, file, Views, Panel, segalanya untuk miliknya sendiri sebanyak mungkin ... memecah proses ke tahap yang berbeda (ketika Anda bisa mulai dari setiap tahap yang memungkinkan kapan pun Anda suka) adalah sesuatu yang saya harap untuk ...
Maaf untuk tidak mendaftar: Saya baru saja mengirim jawaban saya di bawah ini dengan perincian spesifik tentang apa yang paling mungkin terjadi, silakan lihat. Bounty ada bersama Anda, tentu saja.
2

Pesan kesalahan Anda benar-benar cocok dengan string yang terdapat pada baris di http://cgit.drupalcode.org/migrate_upgrade/tree/src/MigrationCreationTrait.php#n40 dalam kode modul "Peningkatan Drupal" ( https: / /www.drupal.org/project/migrate_upgrade ).

Ini menunjukkan bahwa itu bukan bug, melainkan "pengecualian yang dilemparkan". Melihat 3 baris sebelumnya dari kode itu, saya pikir itu hanya masalah dalam mengatur koneksi.

Mungkin ini membantu juga:

  • kutipan dari masalah https://www.drupal.org/node/2628440 (komentar nr 3):

    Untuk memeriksa bahwa database sumber adalah database Drupal yang valid, dan untuk menentukan versi database, proses peningkatan terlihat pada tabel 'sistem' - apakah tabel itu ada dalam database yang Anda tentukan dalam formulir? Apakah penginstalan Drupal di basis data itu diawali (dan jika demikian, apakah Anda memasukkan awalan di bagian "Opsi lanjutan" pada formulir)? ".

  • Diikuti oleh komentar nr 4 dalam masalah yang sama: "Menyediakan awalan tabel 'memecahkan masalah."

Dan tentu saja, komentar dari benjy (terima kasih!) Juga akan membantu untuk mendapatkan rincian lebih lanjut tentang kesalahan aktual yang Anda alami , yaitu:

Anda dapat mencetak $ e-> getException () di sini cgit.drupalcode.org/migrate_upgrade/tree/src/… dan kemudian Anda akan melihat kesalahan PDO

Anda dapat (sementara) menambahkan cetakan semacam itu di antara baris 122 dan 123 dalam kode yang ditunjukkan melalui tautan.

Komunitas
sumber
Seperti yang saya sebutkan dalam pertanyaan, saya tidak memiliki pengetahuan PHP untuk memahami apa masalahnya dari kode PHP yang luas ... Bisakah Anda mengedit pertanyaan dan menjelaskan dengan kata-kata sederhana apa sebenarnya "Pengecualian yang dilemparkan" ini dan apa cara melangkah untuk menanganinya? Tolong sesederhana mungkin, saya baru mulai mencicipi PHP.
@benos Artinya sangat mungkin sesuatu yang sangat sepele salah konfigurasi dalam pengaturan migrasi Anda. Kesalahan ketik, kata sandi salah, URL salah. Sesuatu seperti itu.
leymannx
@benos, Anda bisa mencetak $ e-> getException () di sini cgit.drupalcode.org/migrate_upgrade/tree/src/… dan kemudian Anda akan melihat kesalahan PDO.
benjy
@leymannx Jika saya telah membuat 2 DB secara lokal (satu untuk D7 satu untuk D8), hanya satu dari D7 yang harus memiliki detail yang persis sama dengan situs online yang ingin saya tingkatkan, bukan?
@leymannx Saya telah menciptakan kembali semuanya. Data D7 lokal persis sama di situs D7 online: Folder situs sama; Nama dan Nama Pengguna DB sama, dan kata sandinya sama; Saya juga menambahkan awalan dan meskipun semuanya tampak di tempat saya masih mendapatkan kesalahan yang sama.
0

Saat Anda memaksa basis kode untuk melewati membaca {system} itu mati dengan tidak menemukan tabel database berikutnya, {field_config_instance}. Dengan kata lain: itu tidak membaca database D7 Anda. Mungkin ia mencoba membaca D8, mungkin sesuatu yang lain, bagaimana kita bisa tahu? Kemungkinan besar Anda memasukkan konfigurasi DB yang salah (katakanlah, kedua situs berada di server yang berbeda dengan server mysql menjadi localhost di keduanya tetapi localhost bukan server yang sama). Saya baru saja memeriksa modul contrib Upgrade Migrasi dan kode inti modul migrasi keduanya dan itu akan sangat mengejutkan jika akan ada bug yang berkaitan dengan awalan karena keduanya menangani seluruh array pengaturan database, bukan sepotong demi sepotong.

Tidak mungkin untuk mengatakan tanpa memiliki akses ke infra Anda tentang cara memperbaikinya. Maaf. Jika saya bisa, saya akan memilih untuk menutupnya tetapi karena ada hadiah, saya tidak bisa. Kami tidak dapat membantu Anda dan pertanyaan ini tidak akan membantu orang lain. Satu-satunya bantuan yang mungkin adalah ini: baca dan pahami file pengaturan Drupal 7 Anda dan berikan kredensial yang tepat ke modul Upgrade Migrasi (Banyak sekali komentar yang sudah menunjukkan bahwa ini tidak akan berhasil.)

Salah satu solusi jangka panjang yang mungkin akan mencakup fitur dalam modul contrib di mana orang dapat mengunggah settings.php mereka dan kemudian kita bisa mencoba menggunakannya. Ini sangat rapuh tetapi layak dicoba. Ketika seseorang akan punya waktu untuk kode itu ...

Saya tidak tahu mengapa orang sangat mendukung ini. Apakah ada orang lain yang memiliki masalah yang sama?


sumber
0

Banyak waktu telah berlalu sejak saya memposting ini tetapi saya pikir saya sekarang tahu apa masalahnya:

Saya membiarkan 2-3 modul terinstal, yang saya (kemudian) anggap "sangat mendasar" jadi saya yakin mereka memiliki jalur migrasi sama seperti semua modul inti.

Ini adalah, jika saya ingat dengan benar: Metatag dan Redirect (Anda berpindah dari D7 Globalredirect & Redirect ke Redirect saja di Drupal 8).

Tidak hanya saya meninggalkan ini di situs D7, saya juga menginstalnya di D8, jadi tidak ada versi situs saya yang hanya inti, sesuai kebutuhan.

Itu adalah migrasi pertama saya dan saya melakukan kesalahan itu sebagai siswa baru dalam proyek ini. Saya benar-benar yakin bahwa "tidak mungkin" bahwa modul-modul ini tidak akan memiliki jalur migrasi (dan ketika Anda memikirkannya, mereka benar-benar harus memilikinya), tetapi kemudian saya menemukan bahwa memang, biasanya hanya modul inti yang memiliki dan apa pun. lain harus memiliki jalur migrasi khusus atau kontrib.

Asal tahu saja --- Ini, dan modul-modul lain memang memiliki jalur migrasi contrib yang dapat Anda gunakan dengan menambalnya dengan jalur migrasi ini (Anda "menyuntikkan" ke dalam modul dengan jalur).

Bagaimanapun, itu tidak terjadi pada saya saat itu dan saya yakin itu datang dengan sistem ...

Saya salah besar dan ini menurut saya satu-satunya alasan mengapa migrasi di atas gagal; Saya bahkan memperkuat asumsi ini dengan percobaan kecil yang saya lakukan sebelum migrasi sukses terakhir saya sekitar 2 bulan yang lalu.


sumber
0

Setelah saya mendapat pesan kesalahan itu. Ternyata menjadi $ db_prefix yang saya set "drupal_". Anda harus meletakkannya di opsi lanjutan.

Salam, Carlos Aleman

Pedro Paramo
sumber