2013-07-09 4 views
3

Я только что создал новый класс домена grails в проекте, над которым я только начал работать. Я знаю, что источники данных настроены правильно, так как у нас уже есть куча классов домена, которые прекрасно обновляются в базе данных.Новый класс домена Grails не создает таблицу в базе данных

Я получаю ошибку:

Caused by BatchUpdateException: ORA-00942: table or view does not exist 

Я попытался запустить DBMUpdate но и не создать таблицу.

Есть ли что-то, что мне не хватает при создании классов домена? Нужно ли мне что-то менять в журнале изменений? Любой совет будет полезен!

+1

Что такое dbCreate (в конфигурации для среды), установленном на? –

+0

Нет dbcreate, я предполагаю, что это означает, что grails не будет создавать таблицы автоматически. –

ответ

4

Проще всего добавить dbCreate = "update" в ваш DataSource.groovy. Лучше всего использовать плагин для миграции базы данных для вашего приложения.

Что касается ручного создания таблиц, то гравюра конвенции, следующая по умолчанию, должна подчеркивать верблюд. Например, учитывая следующие домены:

class User { 
    String firstName 
    String lastName 
    static hasMany = [addresses: Address] 
} 

class Address { 

    static belongsTo = [user: User] 
} 

Вы бы в конечном итоге со следующими таблицами:

user 
--------- 
id 
version 
first_name 
last_name 
--------- 

address 
--------- 
id 
version 
user_id 
--------- 
+0

Спасибо, оказалось, что приложение использовало плагин для миграции базы данных, поэтому я только что сгенерировал файл изменений с помощью dbm-generate-gorm-changelog changelog.groovy, а затем выполнил dbm-update и все таблицы были созданы. Благодаря! –

1

Попробуйте запустить ...

grails export-schema 

Это будет использует SchemaExport инструмент Hibernate для генерировать DDL или экспортировать схему для всей базы данных. Из этого файла вы можете захватить строки для отсутствующей таблицы.

За дополнительной информацией по команде обращайтесь к Grails Quick Reference.

+0

Используя версию grails 3.2.8, правильная команда 'grails schema-export' (я запустил команду, и это дало мне это предложение) – coderatchet

Смежные вопросы