Rumah > Soal Jawab > teks badan
P粉1868974652023-08-27 17:01:05
Entiti yang ditandakan dengan bendera readOnly=true
tidak dijejaki untuk kemas kini lagi tetapi masih boleh untuk memasukkan atau memadam baris, seperti yang dijelaskan dalam dokumentasi.
Arahan doctrine:schema:update
masih akan mengambil kira jadual untuk mengemas kini skema.
Dalam jawapan kepada soalan "Abaikan entiti Doctrine2 apabila menjalankan kemas kini pengurus skema" terdapat 3 pilihan yang sah untuk mengabaikan entiti dalam kemas kini skema.
P粉4550931232023-08-27 14:04:02
schema_filter
bukan dibuat untuk "menapis" entiti tetapi untuk menapis jadual db daripada kesedaran doktrin.
Ini contohnya:
Dengan mengandaikan anda mencipta jadual secara manual yang dikemas kini daripada cronjob php mentah tersuai yang dipanggil view_booking_by_customer_per_year
, jadual ini tidak digunakan oleh kod anda dalam projek anda tetapi digunakan untuk analisis data.
Ini adalah contoh biasa, anda tidak mahu menjana pertanyaan sedemikian setiap kali anda mengemas kini skema.
DROP TABLE view_booking_by_customer_per_year; // NO I DONT WANT THIS
Jadi menggunakan schema_filter
anda boleh memberitahu doktrin untuk mengabaikan jadual ini dalam proses pengesahan dan kemas kininya.
Cuba buat jadual rawak menggunakan sql mentah dan gunakan doctrine:schema:validate
.
Ia akan menunjukkan database is not in sync
ralat.
Sebaik sahaja saya memasukkannya ke dalam schema_filter ralat tidak lagi berlaku.
Ia berfungsi untuk doctrine:migration:diff
and doctrine:schema:update
Walau bagaimanapun, jika anda ingin mengelak daripada menjana entiti dalam pangkalan data, anda boleh menemuinya daripada pautan dalam jawapan Ernesto:
schema_ignore_classes: - Reference\To\My\Class - Reference\To\My\OtherClass
Hanya berfungsi dari versi Doktrin 2.7. Anda boleh mendapatkan contoh penuh di sini: Abaikan entiti Doctrine2 apabila menjalankan kemas kini Pengurus Skema
Saya sangat menasihati anda untuk menggunakan doctrine:migration:diff
then doctrine:migration:migrate
instead of doctrine:schema:update
untuk melakukan perubahan pada pangkalan data Tidak mengapa untuk pembangun tempatan, tetapi apabila dalam pengeluaran ia adalah amalan yang sangat buruk.
https://symfony.com/bundles/DoctrineMigrationsBundle/current/index.html