Rails 3 升級 Rails 4 中遇到的問題及解決方法

有些出現的問題實際上是不懂正確的流程,都是在試錯,但是仍是學到了不少東西,寫下了,但願對我和你們都有幫助。html

Homebrew 的問題

當我去運行brew update的時候出現錯誤untracked working tree files,由於homebrew是用Git去更新的,因此若是目錄中出現untracked files就會致使不能更新。而後我看了homebrew的Common Issues文檔git

解決方法

其實我對Git還算了解,但是就不知道homebrew的working tree files在哪裏,因此下面的東西就直接解決了個人問題。github

This is caused by an old bug in the update code that has long since been fixed. However, the nature of the bug requires that you do the following:sql

cd $(brew --repository)
git reset --hard FETCH_HEAD

If brew doctor still complains about uncommitted modifications, also run this command:數據庫

cd $(brew --repository)
git clean -fd

PostgreSQL 的問題

當出現pg gem不能bundle install的時候,我也嘗試過gem install pg -- --with-pg-config這種提示裏面的命令,但是仍是不能解決這個問題。而後我就用homebrew把postgresql 從9.2.3升級到了9.3.2post

後果

這樣作的直接後果就是postgresql不能正常啓動,出現了一下的提示信息:測試

FATAL: database files are incompatible with server DETAIL: The data directory was initialized by PostgreSQL version 9.2, which is not compatible with this version 9.3.2.

原來postgresql升級之後不能兼容原來的數據文件,就是個悲劇啊。看了一下postgresql的升級文檔,PostgreSQL major versions are represented by the first two digit groups of the version number,原來前兩位數字都是主版本號。ui

解決方法

通常本身機器上面的都是測試數據,因此能夠直接刪除掉舊的數據庫文件。運行一下命令就能夠了。this

rm -rf /usr/local/var/postgres
initdb -D /usr/local/var/postgres

若是你想要之前的數據文件,特別若是遇到在production server上升級了postgresql,那麼你就須要使用pg_dump出原來的數據文件,而後就要用到pg_upgrade啦。具體方式能夠查看pg_upgrade的文檔。postgresql

Rails Gem PG 的問題

這個時候pg已經成功安裝成功了,但是在rake db:create的時候又出現關於postgresql的問題了:

Library not loaded: libpq.5.6.dylib

憑藉本身的經驗,以爲應該是postgresql中lib的這一個文件沒有被rake的時候加載到。

解決方法

ln -s /usr/local/Cellar/postgresql/9.3.2/lib/libpq.5.6.dylib /usr/local/lib/libpq.5.6.dylib

而後就能夠該幹嗎幹嗎了。

相關文章
相關標籤/搜索