從Hsql中轉數據到postgresql時遇到的問題
Posted on 2008-07-04 15:09 Fingki.li 閱讀(328) 評論(0) 編輯 收藏 所屬分類: About linux工作中的需要,將一個軟件應用的數據庫由hsql轉為postgresql.
從Hsql中轉數據到postgresql時,我采用的是從 dbname.script中獲取數據的腳本,寫成新的dbname.sql,然后在postgresql中執行的方法。
經過一番努力,終于如愿以常成功導入了數據。
大概瀏覽一下數據,沒有什么問題,就放心的讓同事去測試了。
不到一會兒的工夫,同事就找過來,說軟件應用中的原用戶無法登錄,報錯為用戶的privatekey無法解開(此應用采用數字證書認證,并且加密了privatekey存于數據庫)。
我很是奇怪。
讓同事新創建用戶,正常 ,也可以正常登錄。
于是斷定為數據有問題。
打開數據庫查看用戶信息表,發現privatekeyinfo字段中的數據中有好多 u000a,感覺不對,再查看一下新創建的用戶,這個字段中沒有。
找來dbname.sql查看,果真里面有好多\u000a,實際上這一位置應為回車.替換所有的\u000a為回車,重新導入數據。
一切OK了。
個人感覺原因是:hsql的sql腳本不支持回車符,所以用\u000a代替;而在postgresql中,數據庫不認\u000a,導致數據被修改。
從而privatekey無法正常解開。
希望朋友們不要再走進這個誤區。
從Hsql中轉數據到postgresql時,我采用的是從 dbname.script中獲取數據的腳本,寫成新的dbname.sql,然后在postgresql中執行的方法。
經過一番努力,終于如愿以常成功導入了數據。
大概瀏覽一下數據,沒有什么問題,就放心的讓同事去測試了。
不到一會兒的工夫,同事就找過來,說軟件應用中的原用戶無法登錄,報錯為用戶的privatekey無法解開(此應用采用數字證書認證,并且加密了privatekey存于數據庫)。
我很是奇怪。
讓同事新創建用戶,正常 ,也可以正常登錄。
于是斷定為數據有問題。
打開數據庫查看用戶信息表,發現privatekeyinfo字段中的數據中有好多 u000a,感覺不對,再查看一下新創建的用戶,這個字段中沒有。
找來dbname.sql查看,果真里面有好多\u000a,實際上這一位置應為回車.替換所有的\u000a為回車,重新導入數據。
一切OK了。
個人感覺原因是:hsql的sql腳本不支持回車符,所以用\u000a代替;而在postgresql中,數據庫不認\u000a,導致數據被修改。
從而privatekey無法正常解開。
希望朋友們不要再走進這個誤區。