WordPress dan Alur Kerja Git

23

Saya tahu pertanyaan ini telah ditanyakan ribuan kali, tetapi saya benar-benar mencoba mencari cara untuk mendapatkan yang terbaik dari Git ketika bekerja dengan WordPress.

Saya telah menjelajahi web dan membaca puluhan artikel, semua yang sepertinya membahas topik tersebut secara singkat. Inilah beberapa yang paling terkenal yang pernah saya baca baru-baru ini.

- Versi Mengontrol WordPress

- Mengelola Penyebaran Tema WordPress dengan Git

- Kelola tema WordPress khusus Anda menggunakan git, bukan FTP

Saat ini, alur kerja saya terlihat seperti ini.

  • Instal WordPress secara lokal
  • Kembangkan Tema
  • Ekspor Database WordPress dari server lokal
  • Impor Database WordPress ke server jarak jauh
  • Unggah file dan tema WordPress melalui FTP
  • Klien melakukan perubahan
  • Unduh file dan tema WordPress melalui FTP dan ekspor Database WordPress dari server jarak jauh
  • Ganti file secara lokal
  • Buat perubahan pengembangan
  • Unggah kembali melalui FTP, ekspor dan impor basis data ke server jauh

Saya menyadari bahwa Git dapat merampingkan proses ini. Tampaknya cara terbaik untuk melakukan ini adalah memiliki file .gitignore yang mengabaikan direktori tertentu yang tidak perlu dilacak, serta memiliki file wp-config.php lokal dan remote.

Tetapi bagaimana Anda menangani basis data? Klien biasanya akan melakukan perubahan (posting / halaman / plugin). Apakah saya masih perlu mengekspor dari basis data jauh dan mengimpor kembali di server lokal saya?

Dapatkah seseorang menyarankan alur kerja terbaik untuk saya di sini? Dan menuntun saya melalui langkah-langkah.

Juga, saya mungkin ingin menggunakan Bitbucket sebagai repo pribadi dengan mereka gratis, tidak seperti GitHub.

Bantuan apa pun akan dihargai.

Terima kasih sebelumnya!

realph
sumber
Bagaimana hasilnya? Apakah Anda mengetahuinya? Memiliki masalah yang sama di sini.
qwerty
3
Bisakah Anda sedikit memfokuskan pertanyaan Anda? Anda bertanya tentang git, tetapi kemudian melompat ke basis data dan git bukan alat untuk menangani hal-hal itu.
Rarst
4
Saya pikir pertanyaan Anda valid. Saya memiliki alur kerja yang sama dan dengan berbicara dengan pengembang lain memperhatikan bahwa mereka juga memiliki alur kerja yang sama. Tapi itu benar-benar memakan waktu, dan membuka banyak ruang untuk kesalahan. Saya juga akan tertarik dengan solusi yang lebih baik.
gdaniel

Jawaban:

6

Saya salah satu pengembang WP Migrate DB Pro , dan ingin menjawab pertanyaan @ Ennui:

"Apakah kamu tahu kalau skrip db url replace yang dijalankannya mempertimbangkan string serial?"

Ya, itu menangani data serial. Sebenarnya, itulah alasan utama saya mengembangkan versi gratis dari plugin ini pada tahun 2009. :)

Sayangnya saya hanya memiliki reputasi 41, jadi saya tidak bisa membalas komentar @n Ennui. Maaf untuk itu.

bradt
sumber
1
Dapatkan 50 sekarang :) Plugin man yang luar biasa.
Andrew Bartel
4

Saya membatasi pemungutan suara untuk menutup ini sebagai "tidak konstruktif" karena tampaknya merupakan hal yang akan mendorong debat dan opini daripada jawaban. Tapi...

Itu bukan seperti apa aliran pekerjaan saya, dan itu membuat pendekatan saya (dan jawaban) berbeda dari sebagian besar sisa jawaban sejauh ini.

  1. Instal WordPress secara lokal
    1. Ini diklon dari repo telanjang Git lokal yang berisi rilis stabil terbaru.
    2. Saya juga menyimpan salinan lokal dari rilis terbaru beberapa plugin yang hampir selalu saya instal.
  2. Bangun tema dan semua plugin yang diperlukan
  3. Unggah ke server pementasan publik
    1. Klien diberi akses tetapi tidak dapat mengubah kode dan memberi tahu bahwa pengeditan basis data tidak akan ditransfer ke situs produksi.
    2. Ini berarti bahwa tidak ada alasan untuk mengunduh kode kembali ke server pengembangan.
    3. Dan tidak ada alasan untuk menyinkronkan ulang basis data lokal
  4. Buat perubahan pada situs lokal berdasarkan staf kami dan umpan balik klien.
  5. Unggah perubahan
  6. Ulangi seperlunya (tetapi dengan meningkatnya resistensi :))
  7. Jika kami menyediakan konten, yang tidak selalu demikian, kami (bukan klien) akan membersihkan database pada server pementasan dan mengunggah konten.
  8. Menyebarkan dengan mengunggah kode lokal ke situs produksi.
  9. Jika kami telah membuat konten, konten diekspor dari situs pementasan melalui alat ekspor vanila dan diimpor ke situs produksi.
    1. Ini adalah satu-satunya waktu saya harus memindahkan database, dan itu dilakukan dengan alat yang cukup standar. Saya akan menggunakan URL Pembaruan Velvet Blues untuk membersihkan basis data jika diperlukan.
  10. Debug
  11. Tamat

Pada dasarnya, saya menjauhkan klien dari barang-barang saya sebanyak mungkin sampai kami menyerahkan situs.

Kode bergerak satu arah - dari lokal ke panggung atau produksi. Tidak pernah bergerak sebaliknya. Itu menghilangkan beberapa langkah Anda dan memberi saya ketenangan pikiran. Saya tidak ingin disalahkan karena mengutak-atik klien dalam kode saya dan saya tidak ingin mengimpor beberapa file yang diretas, yang merupakan kemungkinan yang tidak nol.

Dan basis data hanya bergerak sekali, jika sama sekali, yang sangat mengurangi masalah. Jadi saya kira saya mengelola masalah "pemindahan basis data" dengan mengurangi atau menghapus kebutuhan untuk memindahkan basis data. Ini juga mengurangi masalah korupsi basis data yang dapat muncul dan mengurangi kemungkinan mengimpor peretasan.

Benar, saya harus mengkonfigurasi situs produksi - permalinks, menu, dll - tetapi itu memaksa saya untuk bekerja di situs produksi jadi saya menganggapnya semacam debugging. Ini membantu saya memastikan bahwa semuanya berjalan di lokasi produksi seperti seharusnya.

s_ha_dum
sumber
1
11. Akhir - Anda belum pernah memelihara / menambal / meningkatkan situs WordPress?
Simon East
2

Lihatlah tumpukan batuan dasar . Ini menggunakan komposer untuk mengelola versi Wordpress dan plugin pihak ketiga, dan juga termasuk capistrano untuk penyebaran, dan gelandangan / memungkinkan untuk menyiapkan server termasuk server virtual lokal untuk pengembangan.

rjmunro
sumber
2

Saya baru-baru ini melakukan banyak pengujian mengenai hal ini dan di sini adalah alur kerja yang saya gunakan, yang tidak cukup banyak apa yang Anda minta:

  • Saya menggunakan wp-cli untuk mengelola inti wordpress dan memperbarui wordpress.
  • Saya menggunakan komposer bersama dengan http://wpackagist.org untuk mengelola plugin dan dependensi tema.
  • Saya menggunakan git dan meletakkan file inti wp di .gitignore. Jadi sebagian besar file tema wp-config.php dan child ada di git.

Saya tidak terbiasa dengan alat migrasi db tetapi akan menjadi tambahan yang bagus untuk alur kerja ini.

Berikut ini rincian lengkap tentang alur kerja http://geekpad.ca/blog/post/maintainble-portable-wordpress-using-composer-wp-cli

Patrick Lupakan
sumber
1

Mengenai database "kloning", saya menggunakan WP Migrate DB Pro: http://deliciousbrains.com/wp-migrate-db-pro/

Ini adalah layanan berbayar, tetapi tidak memerlukan biaya banyak, dan dengan mudah memungkinkan Anda untuk menarik atau mendorong basis data Anda dari pengembang Anda ke server langsung Anda dan sebaliknya. Itu mengubah URL dan segala sesuatu yang perlu diubah di jalan.

deadlyhifi
sumber
1
Apakah Anda tahu jika skrip db url replace yang dijalankan mempertimbangkan string serialisasi akun? Permintaan pembaruan sederhana untuk mengganti url buruk karena itu memecah string serial manapun dengan URL di dalamnya (kecuali URL baru adalah jumlah karakter yang sama dengan URL lama yang jarang untuk sedikitnya). Ini memecah widget teks dan banyak plugin di antaranya. Saya menggunakan skrip ini sekarang tetapi saya akan tertarik dengan plugin ini jika melakukan hal yang sama.
Ennui
Saya baru saja mengirim email kepada pengembang untuk datang dan menjawab pertanyaan itu. Saya belum memiliki kebutuhan untuk itu (belum).
deadlyhifi
1
Saya menggunakan plugin ini untuk semua kebutuhan migrasi saya dan belum melihat masalah dengan string serial dan ganti url. Semua bidang kustom ditransfer tanpa masalah. Perlu diingat ini menggantikan semuanya secara default. Ini termasuk pengguna / kata sandi / dll ...
hereswhatidid