ما هي القيم التي يمكن أن يأخذها hibernate.hbm2ddl.auto وماذا تفعل؟
مرحباً بالجميع! أنا مطور Java مبتدئ، وأثناء تعلم Hibernate صادفت معامل التهيئة `hibernate.hbm2ddl.auto`. أعلم أنه مسؤول عن إدارة مخطط قاعدة البيانات، لكنني لا أستطيع فهم القيم التي يمكن تعيينها له وكيف تؤثر كل منها على الجداول.
إليك مثال من ملف `application.properties` الخاص بي:
```properties
spring.jpa.hibernate.ddl-auto=update
```
حالياً أستخدم `update`، ويبدو أنه يعمل: يتم إنشاء الجداول تلقائياً. لكنني رأيت أن في مشاريع مختلفة يكتبون `create` و `validate` و `none`. ماذا تعني هذه القيم؟
ما يقلقني بشكل خاص هو:
1. إذا قمت بتعيين `create`، هل سأفقد كل البيانات عند كل تشغيل؟
2. و `validate` — هل هو مجرد فحص؟ ماذا يحدث إذا لم يتطابق الجدول مع الكيان (entity)؟
3. ماذا سيحدث لقاعدة بيانات الإنتاج إذا تركت `create-drop` عن طريق الخطأ؟
سأكون ممتناً لشرح مفصل مع أمثلة. أريد أن أفهم ما هو آمن للاستخدام في الإنتاج وما هو مخصص فقط للتطوير.