2013-07-09 72 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。更好的方法是將數據庫遷移插件用於您的應用程序。

關於手動創建表格,默認情況下遵循的約定grails會強調camelcase。例如,給定以下領域:

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 

這將使用Hibernate的SchemaExport工具生成DDL或導出整個數據庫的模式。從該文件中,您可以抓取缺失表格的行。

查看Grails Quick Reference瞭解命令的更多詳細信息。

+0

使用grails版本3.2.8,正確的命令是'grails schema-export'(我運行了命令,它給了我這個建議) – coderatchet