Ruby on Rails コマンド rake db:merge が PostgreSQL を使用すると機能しない
概要
タイトルで述べたように、heroku は MySQLite をサポートしなくなったため、Ruby on Rails 上で PostgreSQL データベースを使用しています。コマンド Rails Generate scaffold User name:string email:string を実行した後、すべてがスムーズに進みましたが、rake db: Migrate を試みると、いくつかのエラーがスローされました。しばらく検索した後、Rake を 10.0.1 から 0.8.7 にダウングレードしました。これは –trace を使用すると発生するエラーです。
私は今何をすべきか本当にわかりません。また、database.yml ファイルも紹介します (検索中に見つけたヒントからいくつかの変更を加えました)。
development:
adapter: postgresql
encoding: unicode
database: coise_development
pool: 5
username: coise
password:
host: localhost
port: 5432
test:
adapter: postgresql
encoding: unicode
database: coise_test
pool: 5
username: coise
password:
host: localhost
port: 5432
production:
adapter: postgresql
encoding: unicode
database: coise_production
pool: 5
username: coise
password:
解決策
進歩しました。この StackOverflow の投稿「Cygwin で Postgresql を有効にする」によって、PostGreSql サービスを起動して実行することができました。最終的に、PostGreSql サービスが開始されたユーザー (私の場合は「Roma」) に従って、database.yml ファイルのユーザー名とデータベース フィールドを変更するだけで済みました。
最後に、コマンド rake db:merge は問題なく実行できました。heroku へのプッシュと同様に、完璧でした。まだ理解していない唯一のことは、heroku ホスティングに関するものです。ユーザー ページ (Rails scaffold コマンドを使用して追加したテーブル) がまだ利用できないためです。 Heroku では、「Dyno」を増やして、「実稼働 Postgresql データベース」にアップグレードする必要があると言われています。これがホスティングが完了するまでに時間がかかることを意味しているのか、それとも実際にアプリに問題があるのかはわかりませんが、生成されたデータベースは非常に基本的でシンプルであると言わざるを得ません。