title: How does spring.jpa.hibernate.ddl-auto property exactly work in Spring?
body: <p>I was working on my Spring boot app project and noticed that, sometimes there is a connection time out error to my Database on another server(SQL Server). 
  This happens specially when I try to do some script migration with <code>FlyWay</code> but it works after several tries. </p>
  
  <p>Then I noticed that I didn't specify  <code>spring.jpa.hibernate.ddl-auto</code> in my properties file. I did some research and found that it is recommended to add
   <code>spring.jpa.hibernate.ddl-auto= create-drop</code> in development.
   And change it to: <code>spring.jpa.hibernate.ddl-auto= none</code> in production.</p>
  
  <p>But I didn't actually understand how does it really work and how does hibernate generate database schema using <code>create-drop</code> or <code>none</code> value. Can you please explain technically how does it really work, and what are recommendations for using this property in development and on a production server.
  Thank you</p>