我剛剛開始研究一個項目,我剛剛創建了一個新的grails領域類。我知道數據源設置正確,因爲我們已經有一堆正在更新到數據庫的域類。新的Grails領域類沒有在數據庫中創建表格
的錯誤,我得到:
Caused by BatchUpdateException: ORA-00942: table or view does not exist
我試圖運行DBMUpdate但也沒有創建表。
有什麼我失蹤創建域類?我需要更改變更日誌中的內容嗎?任何建議都會有幫助!
我剛剛開始研究一個項目,我剛剛創建了一個新的grails領域類。我知道數據源設置正確,因爲我們已經有一堆正在更新到數據庫的域類。新的Grails領域類沒有在數據庫中創建表格
的錯誤,我得到:
Caused by BatchUpdateException: ORA-00942: table or view does not exist
我試圖運行DBMUpdate但也沒有創建表。
有什麼我失蹤創建域類?我需要更改變更日誌中的內容嗎?任何建議都會有幫助!
最簡單的事情是將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
---------
謝謝,原來應用程序使用的是數據庫遷移插件,所以我剛剛使用dbm-generate-gorm-changelog changelog.groovy生成了更改日誌文件,然後運行dbm-update並創建了所有表。謝謝! –
嘗試運行...
grails export-schema
這將使用Hibernate的SchemaExport
工具生成DDL或導出整個數據庫的模式。從該文件中,您可以抓取缺失表格的行。
查看Grails Quick Reference瞭解命令的更多詳細信息。
使用grails版本3.2.8,正確的命令是'grails schema-export'(我運行了命令,它給了我這個建議) – coderatchet
什麼是dbCreate(在每個環境配置中)設置爲? –
沒有dbcreate,我假設這意味着grails不會自動創建表。 –