Nasıl komut satırını kullanarak üretim web dev yeni MySQL veritabanı yapısını geçiş?

0 Cevap php

Dev ve Üretim: ben iki web ortamları (ayrı sunucular, Media Temple, DV'ler) var.

Biz Dev sunucu var, sonra Üretimi site inşa başladı, bu yüzden aslında bu gibi komutları kullanarak Dev Üretim veritabanı taşındı:

$ mysqldump -a -u USERNAME -p DATABASE > OUTPUT.mysql
$ gzip OUTPUT.mysql

Sonra, Dev sunucu web sitesi ve veritabanı oluşturuldu üzerinde OUTPUT.mysql taşındı ve ithalatı için Dev üzerinde MySQL ortamı kurmak:

$ mysql -u USERNAME -p DATABASE

set up environment for large data import: 
mysql> set global net_buffer_length=1000000; 
mysql> set global max_allowed_packet=1000000000;
mysql> exit

Ve bu komutlar ile Dev veri ve şema hem ithal:

$ gunzip -f OUTPUT.mysql.gz
$ mysql -u USERNAME -p TARGET_DATABASE_NAME < OUTPUT.sql

Şimdi böyle / ekleyerek mevcut tablolardaki alanları silme ve tablolar ekleme gibi Dev MySQL veritabanı yapısında değişiklik, yaptık ve ben Üretim benim değişiklikleri göç etmek istiyorum.

Nasıl ben başlangıçta yaptığımıza benzer komut satırı kullanarak Üretim içine ama canlı verileri yazmadan Dev veritabanı ve ithalat sadece güncellenen yapısı göç mı? (Benim canlı verilerin tümü Üretimi, yani Dev arta veri getirmek için gerek yoktur.)

Veritabanı phpMyAdmin (yanı sıra, komut satırı daha hızlı ve çalışmak için daha kolay gibi görünüyor) ile bunu yapmak için çok büyük olmuştur. Ben bir komut dosyası içine atmak basit bir süreç olmalıdır gibi görünüyor uzakta üçüncü parti araçları ya da açık kaynak yazılım kalmak güzel olurdu. Ya da ben yanlış bu konuda giderek daha iyi Kaçırdığım bir şey var ki?

UPDATE: Yani, aşağıda cevaplar ve ek okuma dayalı, ben canlı veritabanı ve benim yerel veritabanı (bazı değişiklikleri içerir) hem inceler ve tablolar arasındaki farklılıkları karşılaştırır bir PHP komut dosyası yazma sona erdi.

Komut tabloları her iki veritabanları MySQL "SHOW TABLOLAR" fonksiyonunu kullanarak ve karşılaştırarak yerel vs canlı veritabanından eksik olduğunu bulur. Eksik olan bu tablolar için tablo oluşturmak için MySQL ifadeleri almak için CREATE tablo sergilemektedir.

Benzer şekilde, komut her veritabanında her masada $ FROM tablo SHOW sütunlarından kullanarak sütunları eksik olduğunu bulur. Bu MySQL komut sütun adlarını ve özelliklerini döndürür, böylece o zaman eksik sütunlar için otomatik ALTER tablo deyimleri inşa olabilir.

Son olarak, PHP komut dosyası phpMyAdmin koştu tablolar, oluşturma ve değiştirme için bir SQL komut dosyası gibi her şeyi verir.

0 Cevap