Saya punya file konfigurasi drush ~ / .drush / drushrc.php:
if (!isset($options['structure-tables']['common'])) {
$options['structure-tables']['common'] = array(
'cache', 'cache_*', 'history', 'search_*', 'sessions', 'watchdog'
);
}
$options['structure-tables']['common'] = array_merge($options['structure-tables']['common'],
array('ctools_css_cache', 'ctools_object_cache', 'logz', 'views_object_cache')
);
Dan saya punya file skrip bash:
/usr/bin/drush sql-dump --root="/home/username/domains/sitename/www" --skip-tables-key="common" --gzip --result-file=/home/username/backup/$year/$month/dbname_$date_now_time.sql
Tetapi ketika saya menjalankannya file cadangan masih memiliki data dalam tabel cache. Apa yang saya lakukan salah?
Dan pertanyaan kedua adalah - Jika saya meletakkan ini di crontab saya harus meletakkan file konfigurasi di tempat lain?
Saya menggunakan Drush versi 8.
drushrc.php
tidak dijalankan. Coba var_dump dari$options['structure-tables']
dalamdrushrc.php
hanya untuk mengonfirmasi bahwa itu sedang dijalankan.Jawaban:
Maaf saya tidak bisa banyak membantu Anda dengan pertanyaan pertama Anda ...
Pertanyaan ke-2 Anda bertanya:
Situs dokumentasi drush menautkan ke file contoh drushrc.php yang mengatakan di mana Anda dapat meletakkan file rc:
https://raw.githubusercontent.com/drush-ops/drush/master/examples/example.drushrc.php
Untuk Cron, dokumentasi merekomendasikan agar Drush dikonfigurasikan untuk dijalankan sebagai pengguna yang sama yang menjalankan server web Anda. Yang sedang berkata saya sarankan Anda menempatkan file rc Anda di lokasi (5), folder konfigurasi sistem-lebar. Ya, file Drush rc yang lebih dilokalkan akan perlu mengganti file konfigurasi sistem Anda sesuai kebutuhan (oh well).
sumber
Buang semua tabel kecuali
cache
tabel dan tabel dimulai dengancache_
.Hanya struktur basis data. Tidak ada data sama sekali.
Hanya data. Tidak ada data cache dan tidak ada struktur cache.
Tidak ada data cache tetapi dibuang dalam struktur mereka.
dokumentasi sql-dump
sumber
--extra=--no-data
tidak bekerja untuk saya, tetapi saya bisa melakukannya--skip-tables-list="*"
dan itu berhasil."cache,cache_*"
mencegah shell Anda dari mencocokkan file yang dipanggilcache_*
di direktori kerja Anda.Untuk beberapa alasan cache_ * tidak berfungsi untuk saya dengan drush 9+ sampai saya menghilangkan garis bawah. Namun, ini mungkin khusus untuk bash / terminal (server) saya. Apa yang berhasil untuk saya:
dan Anda selalu dapat menambahkan
--verbose
untuk melihat dump mysql aktual dan parameter --ignore.sumber
cache_*
cocok dengan file apa pun di direktori Anda saat ini maka bash akan menggumpal nama file tersebut dan menggunakannya sebagai argumen. Anda dapat menempatkan tanda kutip ganda di sekitarnya untuk memastikan nilai literal diteruskan ke perintah alih-alih file apa pun yang digelutinya.