我有一個遷移到MySQL和PostgreSQL的應用程序,我在數據分配時都有不同的行爲。在Grails中配置Postgres
通過分析在Postgres中創建的數據庫,我意識到在每個表中創建的ID的編號不會被重置爲另一個表的更改。例如,它被設置在寄存器3'Table1'中,並將ID 1計數到3.當插入到另一個表中的另一個類的對象中時,應該爲該表啓動該ID,但是它遵循先前的序列並且當對象被保存在'table2'中時,他的第一個ID開始繼續從4開始計數。我還注意到了Mysql中的一些變化,因爲在'Postgres'中'false'字段'布爾'是preenchdio'0'假「。
我更新了JDBC,但問題仍然存在。我想也許應該有一些在該領域的「映射」配置,但不確定。
我的數據源是這樣的:
environments {
development {
dataSource {
dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', ''
url = "jdbc:postgresql://localhost:5432/app"
driverClassName = "org.postgresql.Driver"
dialect = org.hibernate.dialect.PostgreSQLDialect
//url = "jdbc:mysql://localhost:3306/app"
username = "app"
password = "app123"
}
}
test {
dataSource {
dbCreate = "update"
url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
username = "sa"
password = ""
}
}
production {
dataSource {
dbCreate = "update"
url = "jdbc:postgresql://localhost:5432/app"
driverClassName = "org.postgresql.Driver"
username = "postgres"
pooled = true
properties {
maxActive = -1
minEvictableIdleTimeMillis=1800000
timeBetweenEvictionRunsMillis=1800000
numTestsPerEvictionRun=3
testOnBorrow=true
testWhileIdle=true
testOnReturn=true
validationQuery="SELECT 1"
}
}
}
}
您可以按照在MySQL的Postgres同樣的模式?
Hello Burt!感謝您的迴應! 我看到了所有的文字,並且已經創建了一個自定義方言來解決這個問題。我看到你創建的代碼,但想知道如何在自定義Grail中實現這種方言?我看到了你的代碼,但不知道該怎麼做,請指導我該怎麼做才能實現這個自定義方言並解決這個問題。 – isilva
我編輯了答案以顯示如何註冊方言 –
Hello Burt!謝謝你幫助我!你的代碼完美工作,他的小技巧如何引用它真的很酷。現在我想想一些使安培存儲布爾值爲'0'而不是'假'的方法(如果你有任何提示,請告訴我)。 頂多我只能感謝他。非常感謝! – isilva