Обновление класса домена в grails

#sql-server #grails #grails-orm

#sql-сервер #grails #grails-orm

Вопрос:

Я хочу добавить новые поля в класс домена, чтобы он обновлял набор атрибутов сгенерированной таблицы. У меня есть такой класс домена,,

 Class Book {
String name
  static constraints = {
   name nullable:false
  }

 String toString() {
        return name
 }
}
  

Созданный GORM включает имя вместе с идентификатором и версией. Теперь я хочу добавить ISBN в класс домена Book следующим образом

  Class Book {
    String name
    String ISBN
      static constraints = {
       name nullable:false
       ISBN nullable:true
      }

     String toString() {
            return name
     }
    }
  

Я не хочу использовать create-drop in DataSource.groovy , потому что он удалит все мои предыдущие данные. Мой DataSource.groovy выглядит так,,

  dataSource {
         dbCreate = "update"
         url = "jdbc:jtds:sqlserver://localhost:1433/databaseName"
         username = "username"
         password = "password"
  }
  

Я хочу, чтобы GORM добавил поле ISBN в таблицу book. Но этого не происходит. Где я ошибаюсь?

Я использую sql server 2008 и grails версии 2.1.1

Ответ №1:

 dataSource {
     dbCreate = "update"
}
  

должно сработать. Он обновляет вашу базу данных без удаления таблиц

Комментарии:

1. определено ли это поле для каждой среды? Проверьте также журнал запуска, должны быть некоторые предупреждения в случае неудачных изменений схемы

Ответ №2:

вам нужно будет вручную создать это поле в sql server. это простая задача в sqlserver, потому что все его инструменты, и вам следует ознакомиться с документацией плагина миграции базы данных grails. Он должен быть уже установлен в вашей версии grails