2013-10-15 52 views
0

我想將我的數據庫移動到PostgreSQL,因爲我把它放在Heroku上。 關注Railscast #342。在我的Ubuntu機器上安裝PostgreSLQ及其依賴項。當我安裝它時,我認爲用戶已經創建。我在我的database.yml中使用這個用戶。它看起來像這樣:從Sqlite3移動到PostgreSQL Rails

production: 
    adapter: postgresql 
    encoding: unicode 
    database: dlrvbtApp1_production 
    pool: 5 
    username: jdartland 
    password: 

development: 
    adapter: postgresql 
    encoding: unicode 
    database: dlrvbtApp1_development 
    pool: 5 
    username: jdartland 
    password: 

test: 
    adapter: postgresql 
    encoding: unicode 
    database: dlrvbtApp1_test 
    pool: 5 
    username: jdartland 
    password: 

安裝pg gemtaps gem。 跑了Bundle install,與rake db:create:all

入門水龍頭senatra與taps server sqlite://db/development.sqlite3 jdartland secure

服務器啓動服務器創建的數據庫。並嘗試通過此命令將SQL拉到我的新開發數據庫。

taps pull postgres://[email protected]/dlrvbtApp1_development http://jdartland:[email protected]:5000 

然後我得到這個錯誤:

Failed to connect to database: 
    Sequel::DatabaseConnectionError -> PG::ConnectionBad: fe_sendauth: no password supplied 

我已經試了又試,創造了新的數據庫,canhing的.yml,pg_config等等,但我不能讓它開始工作。 這是我第一次使用PostgreSQL和Heroku,請給我一隻手! :)

+0

好的愚蠢的問題.......但你說錯誤是沒有密碼設置。但是你的database.yml文件中沒有密碼? –

+0

很好,也試過了,得到同樣的錯誤。第一次使用數據庫時,不知道如何將身份驗證傳遞給本地mashine上的tapas gem託管的本地主機sinatra數據庫。 – fynn

回答

0

得到按照這裏堆棧另一個崗位工作。只需上傳一個目錄,即可安裝水龍頭Gem install Taps。卸載Rack gem gem uninstall rack 4然後重新安裝它gem install rack --version 1.0.1。沒有在我的progect目錄中執行此操作,只是簡單地在RVM中執行此操作。然後從相同的目錄中拉出數據庫。 (不是來自我的項目目錄)。

這裏是全胎面:taps migration failing from sqlite to postgres rails4, ruby 1.9.3

希望它可以幫助別人同樣的問題。

現在只有一件事離開,把它推到Heroku的.....我們將看到如何去...嘿嘿

感謝所有幫助!

1

將生產用戶更改爲localhost並將密碼留空。

production: 
    adapter: postgresql 
    encoding: unicode 
    database: dlrvbtApp1_production 
    pool: 5 
    username: localhost 
    password: 
+0

我應該在開發和測試中做同樣的事嗎? – fynn

+0

當我然後做耙db:創建:所有我得到致命:用戶「本地主機」對等身份驗證失敗 – fynn

+0

好的交易。看看這篇文章,從這裏開始配置。 http://stackoverflow.com/questions/2942485/psql-fatal-ident-authentication-failed-for-user-postgres –

1

如果你移動你的數據庫的Heroku,整個事情就是連接你的數據庫到Heroku的PG之一,並遷移數據的情況。

您是否從Heroku收到數據庫詳細信息? 他們基本上使用亞馬遜服務他們的數據庫,你會得到一些憑據放入你的yml文件中。這是我們生活的Heroku應用程序的一個示例:

production: 
    adapter: postgresql 
    database: ******** 
    pool: 5 
    username: **************** 
    password: **************** 
    port: 5432 
    host: ec2-54-228-234-250.eu-west-1.compute.amazonaws.com 

方式遷移到PostgreSQL的(Heroku的)

如果你正在尋找從sqlite3的到PostgreSQL遷移數據,我發現了一個真的很好的教程如何做到這一點here。唯一的問題是,它不是SQLite的笑

+0

哈哈謝謝,耶可以在未來有用。首先,我必須從sqlite3遷移到postgresql。不管怎麼說,多謝拉! – fynn

1

如果你想從Heroku的數據庫下拉到本地的Postgres數據庫,使用pg:pull或pgbackups:

您還應該考慮使用工頭和.env文件來設置您的DATABASE_URL,類似於它在Heroku上運行的dev/prod奇偶校驗:

+0

我試圖把它從我本地的sinatra Sqlite3數據庫中提取到PostgreSQL – fynn

相關問題